opnsense-src/lib/libthr/thread
Mike Makonnen d39d651258 _pthread_cancel() breaks the normal lock order of first locking the
joined and then the joiner thread. There isn't an easy (sane?) way
to make it use the correct order without introducing races involving
the target thread and finding which (active or dead) list it is on. So,
after locking the canceled thread it will try to lock the joined thread
and if it fails release the first lock and try again from the top.

Introduce a new function, _spintrylock, which is simply a wrapper arround
umtx_trylock(), to help accomplish this.

Approved by: re/blanket libthr
2003-05-25 08:48:11 +00:00
..
Makefile.inc Add stub implementations of pthread_[gs]etconcurrency to libc_r and 2003-04-20 01:53:13 +00:00
thr_attr.c
thr_autoinit.c Make WARNS2 clean. The fixes mostly included: 2003-05-23 09:48:20 +00:00
thr_cancel.c _pthread_cancel() breaks the normal lock order of first locking the 2003-05-25 08:48:11 +00:00
thr_clean.c - Define curthread as _get_curthread() and remove all direct calls to 2003-04-02 03:05:39 +00:00
thr_concurrency.c Add stub implementations of pthread_[gs]etconcurrency to libc_r and 2003-04-20 01:53:13 +00:00
thr_cond.c Lock the cond queue (condition variables): 2003-05-24 01:02:16 +00:00
thr_condattr_destroy.c
thr_condattr_init.c
thr_create.c Part of the last patch. 2003-05-25 08:35:37 +00:00
thr_detach.c Make WARNS2 clean. The fixes mostly included: 2003-05-23 09:48:20 +00:00
thr_equal.c
thr_exit.c Start locking up the active and dead threads lists. The active threads 2003-05-25 08:31:33 +00:00
thr_find_thread.c Part of the last patch. 2003-05-25 08:35:37 +00:00
thr_gc.c Start locking up the active and dead threads lists. The active threads 2003-05-25 08:31:33 +00:00
thr_getprio.c
thr_getschedparam.c
thr_info.c Start locking up the active and dead threads lists. The active threads 2003-05-25 08:31:33 +00:00
thr_init.c Start locking up the active and dead threads lists. The active threads 2003-05-25 08:31:33 +00:00
thr_join.c Start locking up the active and dead threads lists. The active threads 2003-05-25 08:31:33 +00:00
thr_kern.c The libthr code makes use of higher-level primitives (pthread_mutex_t and 2003-05-25 07:58:22 +00:00
thr_main_np.c
thr_mattr_init.c
thr_mattr_kind_np.c
thr_multi_np.c
thr_mutex.c Make WARNS2 clean. The fixes mostly included: 2003-05-23 09:48:20 +00:00
thr_mutex_prioceiling.c - Reenable setschedparam and the prioceiling code now that the mutex code 2003-04-01 22:40:29 +00:00
thr_mutex_protocol.c
thr_mutexattr_destroy.c
thr_once.c
thr_printf.c Make WARNS2 clean. The fixes mostly included: 2003-05-23 09:48:20 +00:00
thr_private.h _pthread_cancel() breaks the normal lock order of first locking the 2003-05-25 08:48:11 +00:00
thr_resume_np.c Make WARNS2 clean. The fixes mostly included: 2003-05-23 09:48:20 +00:00
thr_rwlock.c
thr_rwlockattr.c
thr_self.c - Define curthread as _get_curthread() and remove all direct calls to 2003-04-02 03:05:39 +00:00
thr_sem.c - Define curthread as _get_curthread() and remove all direct calls to 2003-04-02 03:05:39 +00:00
thr_seterrno.c
thr_setprio.c
thr_setschedparam.c Make WARNS2 clean. The fixes mostly included: 2003-05-23 09:48:20 +00:00
thr_sig.c Make WARNS2 clean. The fixes mostly included: 2003-05-23 09:48:20 +00:00
thr_spec.c - Define curthread as _get_curthread() and remove all direct calls to 2003-04-02 03:05:39 +00:00
thr_spinlock.c _pthread_cancel() breaks the normal lock order of first locking the 2003-05-25 08:48:11 +00:00
thr_stack.c Start locking up the active and dead threads lists. The active threads 2003-05-25 08:31:33 +00:00
thr_suspend_np.c
thr_syscalls.c Make WARNS2 clean. The fixes mostly included: 2003-05-23 09:48:20 +00:00
thr_yield.c