From 18f2ff55c55c58c0733e90b526031fc14b3f70a9 Mon Sep 17 00:00:00 2001 From: davidxu Date: Thu, 13 Mar 2014 06:54:10 +0000 Subject: To avoid missing a chance to cancel thread, call _pthread_testcancel at the beginning of _sem_timedwait. Submitted by: Eric van Gyzen < eric at vangyzen dot net > MFC after: 3 days --- lib/libc/gen/sem_new.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/libc/gen/sem_new.c b/lib/libc/gen/sem_new.c index 1bf84ea..9a2ab27 100644 --- a/lib/libc/gen/sem_new.c +++ b/lib/libc/gen/sem_new.c @@ -381,6 +381,7 @@ _sem_timedwait(sem_t * __restrict sem, return (-1); retval = 0; + _pthread_testcancel(); for (;;) { while ((val = sem->_kern._count) > 0) { if (atomic_cmpset_acq_int(&sem->_kern._count, val, val - 1)) -- cgit v1.1