On 1 Aug 2005, at 11:04, Chris Vetter wrote:

On Mon, 01 Aug 2005 08:53:23 Richard Frith-Macdonald wrote:

Maybe this has an obvious answer but if so I can't see it... :-(

The documentation for -runUntilDate: says
Runs the loop in NSDefaultRunLoopMode by repeated calls to
-runMode:beforeDate: while there are still input sources. Exits when no more input sources remain, or date is reached, whichever occurs first.


Yes, I know, but...


So I guess you could send the notification when the method returns.


While the runloop 'runs' for X minutes, it contains a timer that fires every Y seconds calling a selector. There is no method 'blocking' the application,
rather the runloop works in the background.

Do you mean that the runloop is working in another thread?

I was hoping that once the runloop stops, it would invalidate (which could
be checked) but that doesn't seem to be the case.

No ... runloops never become 'invalid' ... though -limitDateForMode: will check to see if there are inputs remaining.

Would it be possible to create an observer that checks - limitDateForMode: ? As far as I understand its documentation, if there is no timer scheduled (anymore) the method should return no date (nil?) -- which would mean that
the limitDate (used in -runUntilDate:) has been reached.

No ... runloops are meant to be thread-local, and it's not safe to monitor a runloop running in one thread from an other thread.

If you want a notification when there are no more inputs for a runloop, you can just use -runUntilDate:

eg.

[[NSRunLoop currentRunLoop] runUntilDate: endDate];
[[NSNotificationCenter defaultCenter] postNotificationName: @"NoInputsLeft" object: [NSRunLoop currentRunLoop]];
// continue processing in this thread.




_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to