freebsd-dev/lib/libthr/thread
Konstantin Belousov b072e86d09 Make kevent(2) a cancellation point.
Note that to cancel blocked kevent(2) call, changelist must be empty,
since we cannot cancel a call which already made changes to the
process state.  And in reverse, call which only makes changes to the
kqueue state, without waiting for an event, is not cancellable.  This
makes a natural usage model to migrate kqueue loop to support
cancellation, where existing single kevent(2) call must be split into
two: first uncancellable update of kqueue, then cancellable wait for
events.

Note that this is ABI-incompatible change, but it is believed that
there is no cancel-safe code that relies on kevent(2) not being a
cancellation point.  Option to preserve the ABI would be to keep
kevent(2) as is, but add new call with flags to specify cancellation
behaviour, which only value seems to add complications.

Suggested and reviewed by:	jilles
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2015-03-29 19:14:41 +00:00
..
Makefile.inc Merge all the copies of _tcb_ctor and _tcb_dtor. 2015-01-21 16:41:05 +00:00
thr_affinity.c
thr_attr.c
thr_autoinit.c
thr_barrier.c Fully initialize allocated memory for the new barrier. The 2015-02-06 12:18:38 +00:00
thr_barrierattr.c
thr_cancel.c The SUSv4tc1 requires that pthread_setcancelstate() shall be not a 2013-06-19 04:47:41 +00:00
thr_clean.c
thr_concurrency.c
thr_cond.c Fix typo in a comment. 2014-09-02 18:21:19 +00:00
thr_condattr.c
thr_create.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
thr_ctrdtr.c Merge all the copies of _tcb_ctor and _tcb_dtor. 2015-01-21 16:41:05 +00:00
thr_detach.c
thr_equal.c
thr_event.c
thr_exit.c Revert r274772: it is not valid on MIPS 2014-11-25 03:50:31 +00:00
thr_fork.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
thr_getcpuclockid.c Implement syscall clock_getcpuclockid2, so we can get a clock id 2012-08-17 02:26:31 +00:00
thr_getprio.c
thr_getschedparam.c Don't forget to initialize return value. 2012-07-20 05:47:12 +00:00
thr_getthreadid_np.c
thr_info.c Simplify code by replacing _thr_ref_add() with _thr_find_thread(). 2012-07-20 03:37:19 +00:00
thr_init.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
thr_join.c
thr_kern.c libthr: Always use the threaded rtld lock implementation. 2013-01-18 23:08:40 +00:00
thr_kill.c In _pthread_kill(), if passed pthread is current thread, do not send 2014-02-01 18:13:18 +00:00
thr_list.c
thr_main_np.c
thr_multi_np.c
thr_mutex.c Propagate errors from _thr_umutex_unlock2 through mutex_unlock_common. 2015-02-25 16:18:26 +00:00
thr_mutexattr.c
thr_once.c
thr_printf.c Fix known issues which blow up the process after dlopen("libthr.so") 2015-01-03 18:38:46 +00:00
thr_private.h Fix a typo in comment and explain the reason. 2015-03-09 20:26:42 +00:00
thr_pspinlock.c
thr_resume_np.c In suspend_common(), don't wait for a thread which is in creation, because 2012-08-27 03:09:39 +00:00
thr_rtld.c Right now, the rtld prefork hook locks the rtld bind lock in the read 2014-05-24 10:23:06 +00:00
thr_rwlock.c Follow changes made in revision 232144, pass absolute timeout to kernel, 2012-02-27 13:38:52 +00:00
thr_rwlockattr.c
thr_self.c
thr_sem.c
thr_setprio.c Don't assign same value. 2012-07-20 03:22:17 +00:00
thr_setschedparam.c Don't assign same value. 2012-07-20 03:22:17 +00:00
thr_sig.c Fix bug in r276630. Do not allow pthread_sigmask() to block SIGCANCEL. 2015-01-21 16:13:37 +00:00
thr_single_np.c
thr_sleepq.c Create a common function lookup() to search a chan, this eliminates 2012-05-10 09:30:37 +00:00
thr_spec.c Return one-based key so that user can check if the key is ever allocated 2013-05-16 03:01:04 +00:00
thr_spinlock.c Properly interpose libc spinlocks, was missed in r276630. In 2015-02-14 11:47:40 +00:00
thr_stack.c Add a knob LIBPTHREAD_BIGSTACK_MAIN, which instructs libthr to leave 2014-08-13 05:53:41 +00:00
thr_suspend_np.c In suspend_common(), don't wait for a thread which is in creation, because 2012-08-27 03:09:39 +00:00
thr_switch_np.c
thr_symbols.c
thr_syscalls.c Make kevent(2) a cancellation point. 2015-03-29 19:14:41 +00:00
thr_umtx.c Use clockid parameter instead of hard-coded CLOCK_REALTIME. 2012-03-19 00:07:10 +00:00
thr_umtx.h libthr: Fix a parameter name in an internal header file. 2013-04-27 14:21:36 +00:00
thr_yield.c