On Sep 24, 2008, at 15:15 , Jason Bobier wrote:
Hey folks, I have a runloop on a thread that looks like this: while (! _cancelled) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];[runloop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];[pool release]; }And I put a timer in the loop that sets _cancelled to true, the runloop never stops. What's the proper way to do this?
The run loop only returns from this call when one of the following happens: 1) it has no input sources or timers left; 2) the beforeDate: date expires; or 3) an input source has been triggered and processed.
Timers don't count as input sources, they are handled at a different part of the event loop. Also, even if you haven't added any timers or input sources to the run loop, many of the high-level frameworks (like AppKit) do, so you can't be sure that
the call will return just because you haven't put anything.Your options, then, are to use a shorter date, as was suggested, or to have an actual input source that gets triggered (the Mach Port Poke), also
suggested already. I just wanted to let you know why this happens :) HTH, J
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]