The _Thread_queue_Enqueue_critical() already deals with thread dispatching.
Update #2555. --- cpukit/posix/src/sigtimedwait.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/cpukit/posix/src/sigtimedwait.c b/cpukit/posix/src/sigtimedwait.c index 8f5693b..77dbe53 100644 --- a/cpukit/posix/src/sigtimedwait.c +++ b/cpukit/posix/src/sigtimedwait.c @@ -150,20 +150,18 @@ int sigtimedwait( the_info->si_signo = -1; - _Thread_Disable_dispatch(); - executing->Wait.return_code = EINTR; - executing->Wait.option = *set; - executing->Wait.return_argument = the_info; - _Thread_queue_Enqueue_critical( - &_POSIX_signals_Wait_queue.Queue, - POSIX_SIGNALS_TQ_OPERATIONS, - executing, - STATES_WAITING_FOR_SIGNAL | STATES_INTERRUPTIBLE_BY_SIGNAL, - interval, - EAGAIN, - &lock_context - ); - _Thread_Enable_dispatch(); + executing->Wait.return_code = EINTR; + executing->Wait.option = *set; + executing->Wait.return_argument = the_info; + _Thread_queue_Enqueue_critical( + &_POSIX_signals_Wait_queue.Queue, + POSIX_SIGNALS_TQ_OPERATIONS, + executing, + STATES_WAITING_FOR_SIGNAL | STATES_INTERRUPTIBLE_BY_SIGNAL, + interval, + EAGAIN, + &lock_context + ); /* * When the thread is set free by a signal, it is need to eliminate -- 1.8.4.5 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel