summaryrefslogtreecommitdiffstats
path: root/lib/librthread/rthread_cancel.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Use a Thread Information Block in both single and multi-threaded programs.guenther2016-05-071-624/+0
| | | | | | | | | | | | | | | | | This stores errno, the cancelation flags, and related bits for each thread and is allocated by ld.so or libc.a. This is an ABI break from 5.9-stable! Make libpthread dlopen'able by moving the cancelation wrappers into libc and doing locking and fork/errno handling via callbacks that libpthread registers when it first initializes. 'errno' *must* be declared via <errno.h> now! Clean up libpthread's symbol exports like libc. On powerpc, offset the TIB/TCB/TLS data from the register per the ELF spec. Testing by various, particularly sthen@ and patrick@ ok kettenis@
* Handle F_ISATTY in the fcntl() stub as wellderaadt2015-10-151-1/+2
| | | | ok guenther
* accept4() should be a cancellation point.guenther2014-08-311-1/+19
| | | | | | Update the list in the pthread_testcancel(3) manpage: several were missing. noted by miod@
* _thread_sys_tcdrain() doesn't exist and isn't usedguenther2013-10-041-2/+1
|
* Extend P_SIGSUSPEND handling in userret() to properly restore thematthew2013-04-291-3/+47
| | | | | | | | | | | | | | | sigmask even if there are no pending signals under the temporary sigmask. Refactor existing select() and poll() system calls to introduce the pselect() and ppoll() system calls. Add rthread wrappers for pselect() and ppoll(). While there, update cancellation point comments to reflect recent fdatasync() addition. Minor bumps for libc and librthread due to new symbols. ok guenther, millert, deraadt, jmc
* Remove "#define _POSIX_THREADS" line before include <pthread.h>.miod2012-04-171-3/+1
| | | | The latter contains "#define _POSIX_THREADS 1" which makes gcc 2.95 complain.
* closefrom() should be a cancellation pointguenther2012-03-221-2/+16
|
* Reimplement mutexes, condvars, and rwlocks to eliminate bugs,guenther2012-01-171-4/+28
| | | | | | | | | | | | | 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.
* Delete some parameter names and extra semicolons that slipped throughguenther2012-01-041-5/+5
|
* Don't let applications block, wait for, or handle SIGTHR, as theguenther2011-12-271-2/+4
| | | | thread library uses it internally for cancellation.
* Implement cancelation for the basic syscall cancelation points,guenther2011-12-051-0/+524
using previously allocated SIGTHR to interrupt in-process syscalls and fixing the spelling of "cancelled" along the way. Modeled on FreeBSD's libthr