aboutsummaryrefslogtreecommitdiff
path: root/lib/libkse/sys
diff options
context:
space:
mode:
authorDaniel Eischen <deischen@FreeBSD.org>2004-12-18 18:07:37 +0000
committerDaniel Eischen <deischen@FreeBSD.org>2004-12-18 18:07:37 +0000
commit843d4004b367db61428fa1cbf611cdbd2791d672 (patch)
tree3341fdd3fcdb8d611509d7622be5b25f271de80a /lib/libkse/sys
parent885dabe5f70ceac846c6d0623c64914d5c401f10 (diff)
Use a generic way to back threads out of wait queues when handling
signals instead of having more intricate knowledge of thread state within signal handling. Simplify signal code because of above (by David Xu). Use macros for libpthread usage of pthread_cleanup_push() and pthread_cleanup_pop(). This removes some instances of malloc() and free() from the semaphore and pthread_once() implementations. When single threaded and forking(), make sure that the current thread's signal mask is inherited by the forked thread. Use private mutexes for libc and libpthread. Signals are deferred while threads hold private mutexes. This fix also breaks www/linuxpluginwrapper; a patch that fixes it is at http://people.freebsd.org/~deischen/kse/linuxpluginwrapper.diff Fix race condition in condition variables where handling a signal (pthread_kill() or kill()) may not see a wakeup (pthread_cond_signal() or pthread_cond_broadcast()). In collaboration with: davidxu
Notes
Notes: svn path=/head/; revision=139023
Diffstat (limited to 'lib/libkse/sys')
-rw-r--r--lib/libkse/sys/thr_error.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/libkse/sys/thr_error.c b/lib/libkse/sys/thr_error.c
index 6f19f931fce9..72e192726b7d 100644
--- a/lib/libkse/sys/thr_error.c
+++ b/lib/libkse/sys/thr_error.c
@@ -37,6 +37,7 @@
#include "libc_private.h"
#include "thr_private.h"
+#undef errno
extern int errno;
int *