diff options
author | mtm <mtm@FreeBSD.org> | 2003-05-12 10:40:53 +0000 |
---|---|---|
committer | mtm <mtm@FreeBSD.org> | 2003-05-12 10:40:53 +0000 |
commit | 48426a5b69ebb2c0acedf34d5c273286bb757c1c (patch) | |
tree | be034a0aebe03655e1b3a5ffd432a7eeddef8c10 /lib | |
parent | 100c8a533a024f8ca7be6d35fdbf5b80c9af6ab2 (diff) | |
download | FreeBSD-src-48426a5b69ebb2c0acedf34d5c273286bb757c1c.zip FreeBSD-src-48426a5b69ebb2c0acedf34d5c273286bb757c1c.tar.gz |
msg2
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libthr/thread/thr_sig.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/libthr/thread/thr_sig.c b/lib/libthr/thread/thr_sig.c index d21886e..51479af 100644 --- a/lib/libthr/thread/thr_sig.c +++ b/lib/libthr/thread/thr_sig.c @@ -120,9 +120,9 @@ _thread_sig_wrapper(int sig, siginfo_t *info, ucontext_t *context) GIANT_LOCK(curthread); /* Save the thread's previous state. */ - curthread->data = psd.psd_wait_data; - curthread->state = psd.psd_state; - curthread->flags = psd.psd_flags; + psd.psd_wait_data = curthread->data; + psd.psd_state = curthread->state; + psd.psd_flags = curthread->flags; /* * Do a little cleanup handling for those threads in @@ -137,7 +137,7 @@ _thread_sig_wrapper(int sig, siginfo_t *info, ucontext_t *context) break; case PS_MUTEX_WAIT: - /* _mutex_lock_backout(curthread); XXXTHR */ + _mutex_lock_backout(curthread); psd.psd_state = PS_RUNNING; break; @@ -154,9 +154,9 @@ _thread_sig_wrapper(int sig, siginfo_t *info, ucontext_t *context) } /* Restore the signal frame. */ - psd.psd_wait_data = curthread->data; - psd.psd_state = curthread->state; - psd.psd_flags = curthread->flags & + curthread->data = psd.psd_wait_data; + curthread->state = psd.psd_state; + curthread->flags = psd.psd_flags & (PTHREAD_FLAGS_PRIVATE | PTHREAD_FLAGS_TRACE); GIANT_UNLOCK(curthread); } |