summaryrefslogtreecommitdiffstats
path: root/cpukit/posix
diff options
context:
space:
mode:
authorMark Johannes <Mark.Johannes@OARcorp.com>1996-06-13 22:16:47 +0000
committerMark Johannes <Mark.Johannes@OARcorp.com>1996-06-13 22:16:47 +0000
commit9e28da41657f105a43a75c7998365810d23dabdc (patch)
treeec7b1dc7339464ae7ac9f78d681fe8a79add2ea8 /cpukit/posix
parentfirst successful run. Has test cases for a simple sigtimedwait() timeout, (diff)
downloadrtems-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.c6
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;