manoj 99/02/15 13:58:59
Modified: pthreads/src/main fdqueue.c
Log:
Fix lockup bug in fdqueue.c. Because of the recent change to make
queue_pop non-blocking, waits were happening without the corresponding
signal.
Revision Changes Path
1.6 +3 -1 apache-apr/pthreads/src/main/fdqueue.c
Index: fdqueue.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/fdqueue.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -u -r1.5 -r1.6
--- fdqueue.c 1999/02/12 20:36:59 1.5
+++ fdqueue.c 1999/02/15 21:58:58 1.6
@@ -49,7 +49,9 @@
if (pthread_mutex_lock(&queue->one_big_mutex) != 0) {
return FD_QUEUE_FAILURE;
}
- pthread_cond_wait(&queue->not_empty, &queue->one_big_mutex);
+ if (queue->head == queue->tail) {
+ pthread_cond_wait(&queue->not_empty, &queue->one_big_mutex);
+ }
fd = queue->data[queue->head].fd;
*addr = queue->data[queue->head].addr;