K 10 svn:author V 3 jhb K 8 svn:date V 27 2005-02-04T16:17:55.000000Z K 7 svn:log V 1462 MFC Most of the various fixes and changes to libpthread from HEAD to 5.x including: Pull debug symbols in for statically linked binaries. gcc -O2 cleanups. Don't call _thr_start_sig_daemon() when SYSTEM_SCOPE_ONLY is defined. If a system scope thread didn't set a timeout, don't call the clock_gettime system call before and after sleeping. Add missing reference count drops to close a memory leak. Save cancelflags in signal frame. 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 breaks an internal system ABI that old versions of the www/linuxpluginwrapper port depend on. Upgrading that port to the latest version will fix that. 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()). Don't panic when sigsuspend is interrupted by a cancellation. END