Apply patch included in bin/8872. This fixes a bug that occurs when
pthread_cond_timedwait() times out. PR: bin/8872 Submitted by: Jason Evans <jasone@canonware.com> Reviewed by: David Schwartz <davids@webmaster.com>
This commit is contained in:
parent
0d0773d84f
commit
1780bb2806
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user