aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objective-c/RxLibrary/GRXForwardingWriter.m
diff options
context:
space:
mode:
Diffstat (limited to 'src/objective-c/RxLibrary/GRXForwardingWriter.m')
-rw-r--r--src/objective-c/RxLibrary/GRXForwardingWriter.m7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/objective-c/RxLibrary/GRXForwardingWriter.m b/src/objective-c/RxLibrary/GRXForwardingWriter.m
index f5ed603698..27ac0acdff 100644
--- a/src/objective-c/RxLibrary/GRXForwardingWriter.m
+++ b/src/objective-c/RxLibrary/GRXForwardingWriter.m
@@ -72,7 +72,11 @@
#pragma mark GRXWriter implementation
- (GRXWriterState)state {
- return _writer ? _writer.state : GRXWriterStateFinished;
+ GRXWriter *copiedWriter;
+ @synchronized(self) {
+ copiedWriter = _writer;
+ }
+ return copiedWriter ? copiedWriter.state : GRXWriterStateFinished;
}
- (void)setState:(GRXWriterState)state {
@@ -106,6 +110,7 @@
@synchronized(self) {
[self finishOutputWithError:errorOrNil];
copiedWriter = _writer;
+ _writer = nil;
}
copiedWriter.state = GRXWriterStateFinished;
}