Fixing potential deadlock in AFURLConnectionOpeation -setOutputStream: /thanks @aburgel

This commit is contained in:
Mattt Thompson 2013-05-20 10:49:44 -07:00
parent 65af19c524
commit efb36aaa99

View file

@ -321,16 +321,14 @@ static inline BOOL AFStateTransitionIsValid(AFOperationState fromState, AFOperat
- (void)setOutputStream:(NSOutputStream *)outputStream {
[self.lock lock];
if (outputStream == _outputStream) {
return;
if (outputStream != _outputStream) {
[self willChangeValueForKey:@"outputStream"];
if (_outputStream) {
[_outputStream close];
}
_outputStream = outputStream;
[self didChangeValueForKey:@"outputStream"];
}
[self willChangeValueForKey:@"outputStream"];
if (_outputStream) {
[_outputStream close];
}
_outputStream = outputStream;
[self didChangeValueForKey:@"outputStream"];
[self.lock unlock];
}