Skip to content

Commit c83f990

Browse files
author
Pushkar Kulkarni
committed
Fix for SR-2913 - HTTP headers not picked up
1 parent 378dde8 commit c83f990

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

Foundation/NSURLSession/NSURLSessionTask.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ open class URLSessionTask : NSObject, NSCopying {
8888
originalRequest = nil
8989
body = .none
9090
workQueue = DispatchQueue(label: "URLSessionTask.notused.0")
91-
taskAttributesIsolation = DispatchQueue(label: "URLSessionTask.notused.1")
91+
taskAttributesIsolation = DispatchQueue(label: "URLSessionTask.notused.1", attributes: DispatchQueue.Attributes.concurrent)
9292
let fileName = NSTemporaryDirectory() + NSUUID().uuidString + ".tmp"
9393
_ = FileManager.default.createFile(atPath: fileName, contents: nil)
9494
self.tempFileURL = URL(fileURLWithPath: fileName)
@@ -145,7 +145,7 @@ open class URLSessionTask : NSObject, NSCopying {
145145
return r
146146
}
147147
//TODO: dispatch_barrier_async
148-
set { taskAttributesIsolation.async { self._currentRequest = newValue } }
148+
set { taskAttributesIsolation.async(flags: .barrier) { self._currentRequest = newValue } }
149149
}
150150
fileprivate var _currentRequest: URLRequest? = nil
151151
/*@NSCopying*/ open fileprivate(set) var response: URLResponse? {
@@ -154,7 +154,7 @@ open class URLSessionTask : NSObject, NSCopying {
154154
taskAttributesIsolation.sync { r = self._response }
155155
return r
156156
}
157-
set { taskAttributesIsolation.async { self._response = newValue } }
157+
set { taskAttributesIsolation.async(flags: .barrier) { self._response = newValue } }
158158
}
159159
fileprivate var _response: URLResponse? = nil
160160

@@ -170,7 +170,7 @@ open class URLSessionTask : NSObject, NSCopying {
170170
taskAttributesIsolation.sync { r = self._countOfBytesReceived }
171171
return r
172172
}
173-
set { taskAttributesIsolation.async { self._countOfBytesReceived = newValue } }
173+
set { taskAttributesIsolation.async(flags: .barrier) { self._countOfBytesReceived = newValue } }
174174
}
175175
fileprivate var _countOfBytesReceived: Int64 = 0
176176

@@ -181,7 +181,7 @@ open class URLSessionTask : NSObject, NSCopying {
181181
taskAttributesIsolation.sync { r = self._countOfBytesSent }
182182
return r
183183
}
184-
set { taskAttributesIsolation.async { self._countOfBytesSent = newValue } }
184+
set { taskAttributesIsolation.async(flags: .barrier) { self._countOfBytesSent = newValue } }
185185
}
186186

187187
fileprivate var _countOfBytesSent: Int64 = 0
@@ -213,7 +213,7 @@ open class URLSessionTask : NSObject, NSCopying {
213213
taskAttributesIsolation.sync { r = self._state }
214214
return r
215215
}
216-
set { taskAttributesIsolation.async { self._state = newValue } }
216+
set { taskAttributesIsolation.async(flags: .barrier) { self._state = newValue } }
217217
}
218218
fileprivate var _state: URLSessionTask.State = .suspended
219219

@@ -298,7 +298,7 @@ open class URLSessionTask : NSObject, NSCopying {
298298
return r
299299
}
300300
set {
301-
taskAttributesIsolation.async { self._priority = newValue }
301+
taskAttributesIsolation.async(flags: .barrier) { self._priority = newValue }
302302
}
303303
}
304304
fileprivate var _priority: Float = URLSessionTaskPriorityDefault
@@ -791,7 +791,7 @@ extension URLSessionTask: _EasyHandleDelegate {
791791
// to the delegate. But in case of redirects etc. we might send another
792792
// request.
793793
guard case .transferInProgress(let ts) = internalState else { fatalError("Transfer completed, but it wasn't in progress.") }
794-
guard let request = currentRequest else { fatalError("Transfer completed, but there's no currect request.") }
794+
guard let request = currentRequest else { fatalError("Transfer completed, but there's no current request.") }
795795
guard errorCode == nil else {
796796
internalState = .transferFailed
797797
failWith(errorCode: errorCode!, request: request)

0 commit comments

Comments
 (0)