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 @@ -192,6 +192,7 @@ public let NSURLSessionTransferSizeUnknown: Int64 = -1
192
192
open class URLSession : NSObject {
193
193
fileprivate let _configuration : _Configuration
194
194
fileprivate let multiHandle : _MultiHandle
195
+ fileprivate let taskIdentifierLock = NSLock ( )
195
196
fileprivate var nextTaskIdentifier = 1
196
197
internal let workQueue : DispatchQueue
197
198
/// This queue is used to make public attributes on `URLSessionTask` instances thread safe.
@@ -406,9 +407,11 @@ extension URLSession._Request {
406
407
407
408
fileprivate extension URLSession {
408
409
func createNextTaskIdentifier( ) -> Int {
409
- let i = nextTaskIdentifier
410
- nextTaskIdentifier += 1
411
- return i
410
+ return taskIdentifierLock. synchronized {
411
+ let i = nextTaskIdentifier
412
+ nextTaskIdentifier += 1
413
+ return i
414
+ }
412
415
}
413
416
}
414
417
You can’t perform that action at this time.
0 commit comments