• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: How to throttle rate of NSInputStream?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to throttle rate of NSInputStream?


  • Subject: Re: How to throttle rate of NSInputStream?
  • From: Steve Sisak <email@hidden>
  • Date: Tue, 27 Mar 2012 21:27:57 -0400

At 10:36 PM +0100 3/27/12, email@hidden wrote:
You probably already have this sorted but it occurred to me that when you receive NSStreamEventHasBytesAvailable you don't have to read the data there and then.

Quinn (DTS) gave Jens the following complete answer on email@hidden:

At 8:52 AM +0100 3/27/12, Quinn \"The Eskimo!\" wrote:
On 26 Mar 2012, at 21:28, Jens Alfke wrote:

What can I do about this? Ideally I'd like the stream to hold off on reading more from the socket until my code finishes processing the buffer..

If you don't call -read:maxLength:, the stream won't send you another NSStreamEventHasBytesAvailable event. So you can handle this case by:

on NSStreamEventHasBytesAvailable
  if we're still processing a buffer
    set a flag indicating that data is available
  else
    read and start processing a buffer
  end if
end

on bufferProcessingDone
  if we ignored a NSStreamEventHasBytesAvailable event
    read and start processing a buffer
  end if
end

Obviously the buffer processing will need to be async (either via an NSOperation or GCD), and you should organise to call -bufferProcessingDone back on the main thread.

Share and Enjoy
--
Quinn "The Eskimo!"                    <http://www.apple.com/developer/>
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

Seems this should be shared here as well.

HTH,

-Steve
_______________________________________________

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

  • Follow-Ups:
    • Re: How to throttle rate of NSInputStream?
      • From: Jens Alfke <email@hidden>
References: 
 >How to throttle rate of NSInputStream? (From: Jens Alfke <email@hidden>)
 >Re: How to throttle rate of NSInputStream? (From: "email@hidden" <email@hidden>)

  • Prev by Date: Re: Is there a list solely for ObjC/compiler language issues?
  • Next by Date: Getting the best frame rate for NSView drawing
  • Previous by thread: Re: How to throttle rate of NSInputStream?
  • Next by thread: Re: How to throttle rate of NSInputStream?
  • Index(es):
    • Date
    • Thread