summaryrefslogtreecommitdiffstats
path: root/c/src/exec/posix/src/psignal.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1996-05-30 20:48:10 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1996-05-30 20:48:10 +0000
commit5600661d6ab0aee73bb6d1c89585ab147c91cdc0 (patch)
tree5847f8a5067476393317243afefd79610a429635 /c/src/exec/posix/src/psignal.c
parentadded dummy versions of __kill and __getpid which assert(0) so that (diff)
downloadrtems-5600661d6ab0aee73bb6d1c89585ab147c91cdc0.tar.bz2
First cut at implementing time, clock_gettime, clock_settime, clock_getres,
sleep, and nanosleep. Does not yet support per process clock, per thread clock, interruptible sleep (sleep/nanosleep), or time remaining on nanosleep.
Diffstat (limited to 'c/src/exec/posix/src/psignal.c')
-rw-r--r--c/src/exec/posix/src/psignal.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/c/src/exec/posix/src/psignal.c b/c/src/exec/posix/src/psignal.c
index 32f6975c84..5224601e32 100644
--- a/c/src/exec/posix/src/psignal.c
+++ b/c/src/exec/posix/src/psignal.c
@@ -244,15 +244,11 @@ unsigned int sleep(
unsigned int seconds
)
{
- _Thread_Disable_dispatch();
- _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );
- _Watchdog_Initialize(
- &_Thread_Executing->Timer,
- _Thread_Delay_ended, /* XXX may need to be POSIX specific */
- _Thread_Executing->Object.id,
- NULL
- );
- _Watchdog_Insert_seconds( &_Thread_Executing->Timer, seconds );
- _Thread_Enable_dispatch();
- return 0; /* XXX should account for signal */
+ /* XXX can we get away with this implementation? */
+ struct timespec tp;
+
+ tp.tv_sec = seconds;
+ tp.tv_nsec = 0;
+
+ return nanosleep( &tp, NULL );
}