mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 09:04:13 +00:00
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:
parent
4d7c1d6fa5
commit
de87122917
2 changed files with 23 additions and 2 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue