CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2012/01/16 19:34:18
Modified files:
sys/kern : init_sysent.c kern_exit.c kern_sig.c
kern_synch.c syscalls.c syscalls.master
sys/sys : syscall.h syscallargs.h
lib/libc : shlib_version
lib/libc/arch/amd64: Makefile.inc
lib/libc/arch/amd64/string: Makefile.inc
lib/libc/sys : Makefile.inc
lib/librthread : rthread.c rthread.h rthread_cancel.c
rthread_file.c rthread_rwlock.c rthread_sem.c
rthread_sig.c rthread_sync.c shlib_version
lib/librthread/arch/alpha: rfork_thread.S
lib/librthread/arch/amd64: rfork_thread.S
lib/librthread/arch/arm: rfork_thread.S
lib/librthread/arch/hppa: rfork_thread.S
lib/librthread/arch/i386: rfork_thread.S
lib/librthread/arch/m68k: rfork_thread.S
lib/librthread/arch/m88k: rfork_thread.S
lib/librthread/arch/mips64: rfork_thread.S
lib/librthread/arch/powerpc: rfork_thread.S
lib/librthread/arch/sh: rfork_thread.S
lib/librthread/arch/sparc: rfork_thread.S
lib/librthread/arch/sparc64: rfork_thread.S
lib/librthread/arch/vax: rfork_thread.S
Log message:
Reimplement mutexes, condvars, and rwlocks to eliminate bugs,
particularly the "consume the signal you just sent" hang, and putting
the wait queues in userspace.
Do cancellation handling in pthread_cond_*wait(), pthread_join(),
and sem_wait().
Add __ prefix to thr{sleep,wakeup,exit,sigdivert}() syscalls; add
'abort" argument to thrsleep to close cancellation race; make
thr{sleep,wakeup} return errno values via *retval to avoid touching
userspace errno.