File tree Expand file tree Collapse file tree 1 file changed +8
-8
lines changed Expand file tree Collapse file tree 1 file changed +8
-8
lines changed Original file line number Diff line number Diff line change @@ -787,16 +787,16 @@ public class InMemoryFileSystem: FileSystem {
787
787
}
788
788
789
789
public func withLock< T> ( on path: AbsolutePath , type: FileLock . LockType = . exclusive, _ body: ( ) throws -> T ) throws -> T {
790
- var fileQueue : DispatchQueue
791
790
792
- lockFilesLock. lock ( )
793
- if let queueReference = lockFiles [ path] , let queue = queueReference. reference {
794
- fileQueue = queue
795
- } else {
796
- fileQueue = DispatchQueue ( label: " org.swift.swiftpm.in-memory-file-system.file-queue " , attributes: . concurrent)
797
- lockFiles [ path] = WeakReference ( fileQueue)
791
+ let fileQueue : DispatchQueue = lockFilesLock. withLock {
792
+ if let queueReference = lockFiles [ path] , let queue = queueReference. reference {
793
+ return queue
794
+ } else {
795
+ let queue = DispatchQueue ( label: " org.swift.swiftpm.in-memory-file-system.file-queue " , attributes: . concurrent)
796
+ lockFiles [ path] = WeakReference ( queue)
797
+ return queue
798
+ }
798
799
}
799
- lockFilesLock. unlock ( )
800
800
801
801
return try fileQueue. sync ( flags: type == . exclusive ? . barrier : . init( ) , execute: body)
802
802
}
You can’t perform that action at this time.
0 commit comments