diff options
author | jb <jb@FreeBSD.org> | 1998-04-17 09:37:41 +0000 |
---|---|---|
committer | jb <jb@FreeBSD.org> | 1998-04-17 09:37:41 +0000 |
commit | 2b906f181aadab0c246afdddb833c654bcb5761e (patch) | |
tree | 60f2ae4aaa142fdd6b497f645a57cb6302beabbd /lib/libkse | |
parent | 325284a63f93adfcb6e3badecf8908e5038fa851 (diff) | |
download | FreeBSD-src-2b906f181aadab0c246afdddb833c654bcb5761e.zip FreeBSD-src-2b906f181aadab0c246afdddb833c654bcb5761e.tar.gz |
When in PS_SIGWAIT state, still call signal handlers and set errno
to EINTR.
Diffstat (limited to 'lib/libkse')
-rw-r--r-- | lib/libkse/thread/thr_kern.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/lib/libkse/thread/thr_kern.c b/lib/libkse/thread/thr_kern.c index 9356c4c..3b62422 100644 --- a/lib/libkse/thread/thr_kern.c +++ b/lib/libkse/thread/thr_kern.c @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: uthread_kern.c,v 1.7 1998/03/09 04:46:26 jb Exp $ + * $Id: uthread_kern.c,v 1.8 1998/04/11 07:47:22 jb Exp $ * */ #include <errno.h> @@ -892,6 +892,7 @@ _thread_signal(pthread_t pthread, int sig) case PS_FDR_WAIT: case PS_FDW_WAIT: case PS_SLEEP_WAIT: + case PS_SIGWAIT: /* Return the 'interrupted' error: */ _thread_seterrno(pthread, EINTR); pthread->interrupted = 1; @@ -902,18 +903,6 @@ _thread_signal(pthread_t pthread, int sig) /* Return the signal number: */ pthread->signo = sig; break; - - /* Waiting on a signal: */ - case PS_SIGWAIT: - /* Change the state of the thread to run: */ - PTHREAD_NEW_STATE(pthread,PS_RUNNING); - - /* Return the signal number: */ - pthread->signo = sig; - - /* Flag the signal as dealt with: */ - done = 1; - break; } /* |