CVSROOT: /cvs Module name: src Changes by: guent...@cvs.openbsd.org 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.