diff options
author | Mark Johannes <Mark.Johannes@OARcorp.com> | 1996-06-13 22:16:47 +0000 |
---|---|---|
committer | Mark Johannes <Mark.Johannes@OARcorp.com> | 1996-06-13 22:16:47 +0000 |
commit | 9e28da41657f105a43a75c7998365810d23dabdc (patch) | |
tree | ec7b1dc7339464ae7ac9f78d681fe8a79add2ea8 /cpukit/posix | |
parent | first successful run. Has test cases for a simple sigtimedwait() timeout, (diff) | |
download | rtems-9e28da41657f105a43a75c7998365810d23dabdc.tar.bz2 |
sigtimedwait passes initial test cases of timeout and simple satisfaction.
Diffstat (limited to 'cpukit/posix')
-rw-r--r-- | cpukit/posix/src/psignal.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/cpukit/posix/src/psignal.c b/cpukit/posix/src/psignal.c index 7fd1901f40..99708cf51e 100644 --- a/cpukit/posix/src/psignal.c +++ b/cpukit/posix/src/psignal.c @@ -140,7 +140,7 @@ boolean _POSIX_signals_Unblock_thread( if ( (the_thread->Wait.option & mask) || (~api->signals_blocked & mask) ) { the_thread->Wait.return_code = EINTR; - the_info = (siginfo_t *) _Thread_Executing->Wait.return_argument; + the_info = (siginfo_t *) the_thread->Wait.return_argument; if ( !info ) { the_info->si_signo = signo; @@ -343,6 +343,7 @@ restart: _ISR_Enable( level ); return; } + _ISR_Enable( level ); for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { @@ -801,7 +802,10 @@ int sigtimedwait( the_info->si_value.sival_int = 0; } + the_info->si_signo = -1; + _Thread_Disable_dispatch(); + the_thread->Wait.queue = &_POSIX_signals_Wait_queue; the_thread->Wait.return_code = EINTR; the_thread->Wait.option = *set; the_thread->Wait.return_argument = (void *) the_info; |