summaryrefslogtreecommitdiffstats
path: root/lib/libc_r
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc_r')
-rw-r--r--lib/libc_r/uthread/uthread_kern.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/libc_r/uthread/uthread_kern.c b/lib/libc_r/uthread/uthread_kern.c
index 626f1d4..7c4dffa 100644
--- a/lib/libc_r/uthread/uthread_kern.c
+++ b/lib/libc_r/uthread/uthread_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:
OpenPOWER on IntegriCloud