diff options
Diffstat (limited to 'lib/libthr/thread/thr_sig.c')
-rw-r--r-- | lib/libthr/thread/thr_sig.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/libthr/thread/thr_sig.c b/lib/libthr/thread/thr_sig.c index 0b8ba2b..771afbc 100644 --- a/lib/libthr/thread/thr_sig.c +++ b/lib/libthr/thread/thr_sig.c @@ -130,6 +130,13 @@ _thread_sig_wrapper(int sig, siginfo_t *info, void *context) * after cleanup handling. */ switch (curthread->state) { + case PS_BARRIER_WAIT: + /* + * XXX - The thread has reached the barrier. We can't + * "back it away" from the barrier. + */ + _thread_critical_enter(curthread); + break; case PS_COND_WAIT: /* * Cache the address, since it will not be available |