@@ -20,7 +20,7 @@ import SotoS3FileTransfer
2020struct LiveS3Client : S3Client {
2121 func deleteFile( client: AWSClient , logger: Logger , key: S3StoreKey ) async throws {
2222 let s3 = S3 ( client: client, region: . useast2)
23- let s3FileTransfer = S3FileTransferManager ( s3: s3, threadPoolProvider : . singleton )
23+ let s3FileTransfer = S3FileTransferManager ( s3: s3)
2424
2525 guard let file = S3File ( key: key) else {
2626 throw Error ( message: " Invalid key: \( key) " )
@@ -30,7 +30,7 @@ struct LiveS3Client: S3Client {
3030
3131 func loadFile( client: AWSClient , logger: Logger , from key: S3StoreKey , to path: String ) async throws {
3232 let s3 = S3 ( client: client, region: . useast2)
33- let s3FileTransfer = S3FileTransferManager ( s3: s3, threadPoolProvider : . singleton )
33+ let s3FileTransfer = S3FileTransferManager ( s3: s3)
3434
3535 guard let file = S3File ( key: key) else {
3636 throw Error ( message: " Invalid key: \( key) " )
@@ -44,26 +44,17 @@ struct LiveS3Client: S3Client {
4444 timeout: . seconds( 60 ) ,
4545 options: . s3DisableChunkedUploads)
4646
47- let threadPool = NIOThreadPool ( numberOfThreads: 8 )
48- defer { threadPool. shutdownGracefully { _ in } }
49- threadPool. start ( )
50-
51- let s3FileTransfer = S3FileTransferManager ( s3: s3,
52- threadPoolProvider: . shared( threadPool) ,
53- configuration: . init( maxConcurrentTasks: 60 ) )
54- defer {
55- try ? s3FileTransfer. syncShutdown ( )
56- }
47+ let s3FileTransfer = S3FileTransferManager ( s3: s3, configuration: . init( maxConcurrentTasks: 60 ) )
5748
5849 guard let s3Folder = S3Folder ( url: key. url) else {
5950 throw Error ( message: " Invalid key: \( key) " )
6051 }
6152
62- var nextProgressTick = 0.1
53+ let nextProgressTick = QueueIsolated ( 0.1 )
6354 try await s3FileTransfer. sync ( from: folder, to: s3Folder, delete: true ) { progress in
64- if progress >= nextProgressTick {
55+ if progress >= nextProgressTick. value {
6556 logger. info ( " Syncing... [ \( percent: progress) ] " )
66- nextProgressTick += 0.1
57+ nextProgressTick. withValue { $0 += 0.1 }
6758 }
6859 }
6960 }
0 commit comments