Re: When does NSInputStream's -getBuffer:length: actually work?
Re: When does NSInputStream's -getBuffer:length: actually work?
- Subject: Re: When does NSInputStream's -getBuffer:length: actually work?
- From: Andreas Grosam <email@hidden>
- Date: Fri, 27 Jul 2012 10:16:01 +0200
On 25.07.2012, at 19:08, Jens Alfke wrote:
> NSInputStream has a -getBuffer:length: method that lets you get the available data from the stream without copying. This is great for performance, and I've written my client code to take advantage of it if it's supported, but every time I've tested, it isn't supported (i.e. just returns NO) so my code just falls back to calling -read:maxLength: instead.
>
> Does anyone know in what circumstances, or in what types of streams, this method actually works?
I could imagine where this can NOT work:
In cases where the buffer is shared for input and output. Since the two streams could possibly execute on different threads, returning the internal buffer in the input stream's thread while the output stream is still executing will likely result in a race condition of the buffers content.
So, I would guess CFStreamCreateBoundPair and possibly all CFStreamCreatePairWith* won't work.
Andreas
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden