File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change @@ -185,6 +185,7 @@ public let NSURLSessionTransferSizeUnknown: Int64 = -1
185
185
open class URLSession : NSObject {
186
186
fileprivate let _configuration : _Configuration
187
187
fileprivate let multiHandle : _MultiHandle
188
+ fileprivate let taskIdentifierLock = NSLock ( )
188
189
fileprivate var nextTaskIdentifier = 1
189
190
internal let workQueue : DispatchQueue
190
191
/// This queue is used to make public attributes on `URLSessionTask` instances thread safe.
@@ -399,9 +400,11 @@ extension URLSession._Request {
399
400
400
401
fileprivate extension URLSession {
401
402
func createNextTaskIdentifier( ) -> Int {
402
- let i = nextTaskIdentifier
403
- nextTaskIdentifier += 1
404
- return i
403
+ return taskIdentifierLock. synchronized {
404
+ let i = nextTaskIdentifier
405
+ nextTaskIdentifier += 1
406
+ return i
407
+ }
405
408
}
406
409
}
407
410
You can’t perform that action at this time.
0 commit comments