Implementation of sleepUntilDate:

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2790 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 1998-04-15 14:26:44 +00:00
parent fb22996168
commit 722df94d6e
2 changed files with 23 additions and 2 deletions

View file

@ -5,6 +5,9 @@ Wed Apr 15 09:54:25 1998 Adam Fedor <fedor@doc.com>
* src/externs.m: Add NSFileOwnerAccountName definition.
(patch provided by Marcus Mueller <znek@object-factory.com>)
* src/NSThread.m (-sleepUntilDate:): Implemented (from
Quetzalcoatl Bradley <qbradley@csc.uvic.ca>).
Sun Apr 5 20:07:28 1998 Scott Christley <scottc@net-community.com>
* Utilize documentation rules in Makefile Package.

View file

@ -168,8 +168,26 @@ static BOOL entered_multi_threaded_state;
// Delaying a thread
+ (void) sleepUntilDate: (NSDate*)date
{
// xxx Do we need some runtime/OS support for this?
[self notImplemented: _cmd];
NSTimeInterval delay;
// delay is always the number of seconds we still need to wait
delay = [date timeIntervalSinceNow];
// Avoid integer overflow by breaking up long sleeps
// We assume usleep can accept a value at least 31 bits in length
while (delay > 30.0*60.0)
{
// sleep 30 minutes
usleep (30*60*1000000);
delay = [date timeIntervalSinceNow];
}
// usleep may return early because of signals
while (delay > 0)
{
usleep (delay*1000000.0);
delay = [date timeIntervalSinceNow];
}
}
// Terminating a thread