From 63e4091dbc0902ea0447bb30940f757478abdef7 Mon Sep 17 00:00:00 2001 From: Jorge Canizales Date: Mon, 18 May 2015 17:41:20 -0700 Subject: [PATCH] Add warning about the perils of buffering without bounds --- src/objective-c/RxLibrary/GRXBufferedPipe.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/objective-c/RxLibrary/GRXBufferedPipe.h b/src/objective-c/RxLibrary/GRXBufferedPipe.h index 02dc6b5fe83..4147362ba42 100644 --- a/src/objective-c/RxLibrary/GRXBufferedPipe.h +++ b/src/objective-c/RxLibrary/GRXBufferedPipe.h @@ -45,6 +45,12 @@ // GRXWriterStateStarted. // If it receives an error (via -didFinishWithError:), it will drop any buffered values and // propagate the error immediately. +// +// Beware that a pipe of this type can't prevent receiving more values when it is paused (for +// example if used to write data to a congested network connection). Because in such situations the +// pipe will keep buffering all data written to it, your application could run out of memory and +// crash. If you want to react to flow control signals to prevent that, instead of using this class +// you can implement an object that conforms to GRXWriter. @interface GRXBufferedPipe : NSObject // Convenience constructor.