diff options
| author | Jason Evans <jasone@FreeBSD.org> | 1999-05-07 07:59:44 +0000 |
|---|---|---|
| committer | Jason Evans <jasone@FreeBSD.org> | 1999-05-07 07:59:44 +0000 |
| commit | a1aefaec2766b235ee994d74df0ba9795feb248e (patch) | |
| tree | c12f6a06b6472af40284de338243c3525b51e9a8 /lib/libpthread/thread/thr_kern.c | |
| parent | 8fea704025e15e426b364e5096cdd4b2a77209ad (diff) | |
Notes
Diffstat (limited to 'lib/libpthread/thread/thr_kern.c')
| -rw-r--r-- | lib/libpthread/thread/thr_kern.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/libpthread/thread/thr_kern.c b/lib/libpthread/thread/thr_kern.c index 626f1d46fdbc..7c4dffaeeafa 100644 --- a/lib/libpthread/thread/thr_kern.c +++ b/lib/libpthread/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.14 1998/10/09 19:01:30 dt Exp $ + * $Id: uthread_kern.c,v 1.16 1999/03/23 05:07:56 jb Exp $ * */ #include <errno.h> @@ -212,7 +212,16 @@ __asm__("fnsave %0": :"m"(*fdata)); FD_ZERO(&pthread->data.select_data->writefds); FD_ZERO(&pthread->data.select_data->exceptfds); pthread->data.select_data->nfds = 0; - } + } else if (pthread->state == PS_COND_WAIT) { + /* + * The pthread_cond_timedwait() + * has timed out, so remove the + * thread from the condition's + * queue. + */ + _thread_queue_remove(pthread->queue, + pthread); + } /* * Return an error as an interrupted * wait: |
