musl/src/thread
Rich Felker 4717bfec70 correctly handle old kernels without FUTEX_WAIT_BITSET
futex returns EINVAL, not ENOSYS, when op is not supported.
unfortunately this looks just like EINVAL from other causes, and we
end up running the fallback code and getting EINVAL again. fortunately
this case should be rare since correct code should not generate EINVAL
anyway.
2011-08-02 21:18:43 -04:00
..
i386 restore use of .type in asm, but use modern @function (vs %function) 2011-06-14 23:15:08 -04:00
x86_64 restore use of .type in asm, but use modern @function (vs %function) 2011-06-14 23:15:08 -04:00
__futex.c global cleanup to use the new syscall interface 2011-03-20 00:16:43 -04:00
__lock.c minor locking optimizations 2011-06-14 01:23:42 -04:00
__set_thread_area.c finish unifying thread register handling in preparation for porting 2011-02-15 03:56:52 -05:00
__timedwait.c correctly handle old kernels without FUTEX_WAIT_BITSET 2011-08-02 21:18:43 -04:00
__unmapself.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
__wait.c reduce some ridiculously large spin counts 2011-05-06 21:45:48 -04:00
__wake.c consistency: change all remaining syscalls to use SYS_ rather than __NR_ prefix 2011-04-06 20:32:53 -04:00
cancel_dummy.c overhaul pthread cancellation 2011-04-17 11:43:03 -04:00
cancel_impl.c fix breakage in cancellation due to signal functions overhaul 2011-08-02 19:59:56 -04:00
cancellation.c match glibc/lsb cancellation abi on i386 2011-03-25 22:13:57 -04:00
cancellation2.c match glibc/lsb cancellation abi on i386 2011-03-25 22:13:57 -04:00
cancellation3.c match glibc/lsb cancellation abi on i386 2011-03-25 22:13:57 -04:00
clone.c finish unifying thread register handling in preparation for porting 2011-02-15 03:56:52 -05:00
pthread_atfork.c add pthread_atfork interface 2011-02-18 19:52:42 -05:00
pthread_attr_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_attr_getdetachstate.c fix pthread_attr_* implementations to match corrected prototypes 2011-03-11 09:51:14 -05:00
pthread_attr_getguardsize.c fix pthread_attr_* implementations to match corrected prototypes 2011-03-11 09:51:14 -05:00
pthread_attr_getschedparam.c implement dummy pthread_attr_[gs]etschedparam functions 2011-03-11 09:51:54 -05:00
pthread_attr_getscope.c fix pthread_attr_* implementations to match corrected prototypes 2011-03-11 09:51:14 -05:00
pthread_attr_getstacksize.c fix pthread_attr_* implementations to match corrected prototypes 2011-03-11 09:51:14 -05:00
pthread_attr_init.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_attr_setdetachstate.c reject invalid attribute settings 2011-03-07 15:46:37 -05:00
pthread_attr_setguardsize.c reorganize pthread data structures and move the definitions to alltypes.h 2011-02-17 17:16:20 -05:00
pthread_attr_setschedparam.c implement dummy pthread_attr_[gs]etschedparam functions 2011-03-11 09:51:54 -05:00
pthread_attr_setscope.c reject invalid attribute settings 2011-03-07 15:46:37 -05:00
pthread_attr_setstacksize.c enforce stack size min in pthread_attr_setstacksize 2011-03-04 00:59:14 -05:00
pthread_barrier_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_barrier_init.c reorganize pthread data structures and move the definitions to alltypes.h 2011-02-17 17:16:20 -05:00
pthread_barrier_wait.c remove debug code that was missed in barrier commit 2011-05-06 20:27:45 -04:00
pthread_barrierattr_destroy.c implement barrier attribute functions (essentially no-ops) 2011-03-07 15:42:52 -05:00
pthread_barrierattr_getpshared.c implement barrier attribute functions (essentially no-ops) 2011-03-07 15:42:52 -05:00
pthread_barrierattr_init.c implement barrier attribute functions (essentially no-ops) 2011-03-07 15:42:52 -05:00
pthread_barrierattr_setpshared.c implement barrier attribute functions (essentially no-ops) 2011-03-07 15:42:52 -05:00
pthread_cond_broadcast.c reorganize pthread data structures and move the definitions to alltypes.h 2011-02-17 17:16:20 -05:00
pthread_cond_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_cond_init.c use the selected clock from the condattr for pthread_cond_timedwait 2011-03-07 17:39:13 -05:00
pthread_cond_signal.c reorganize pthread data structures and move the definitions to alltypes.h 2011-02-17 17:16:20 -05:00
pthread_cond_timedwait.c unify and overhaul timed futex waits 2011-08-02 21:11:36 -04:00
pthread_cond_wait.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_condattr_destroy.c implement pthread_condattr_* interfaces 2011-03-07 16:20:12 -05:00
pthread_condattr_getclock.c implement pthread_condattr_* interfaces 2011-03-07 16:20:12 -05:00
pthread_condattr_getpshared.c implement pthread_condattr_* interfaces 2011-03-07 16:20:12 -05:00
pthread_condattr_init.c implement pthread_condattr_* interfaces 2011-03-07 16:20:12 -05:00
pthread_condattr_setclock.c disallow cpu time clocks as condattr clock values 2011-03-08 02:32:42 -05:00
pthread_condattr_setpshared.c implement pthread_condattr_* interfaces 2011-03-07 16:20:12 -05:00
pthread_create.c add proper fuxed-based locking for stdio 2011-07-30 08:02:14 -04:00
pthread_detach.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_equal.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_getconcurrency.c implement pthread_[sg]etconcurrency. 2011-05-30 11:31:07 -04:00
pthread_getspecific.c optimize POSIX TSD for fast pthread_getspecific 2011-03-03 18:30:44 -05:00
pthread_join.c unify and overhaul timed futex waits 2011-08-02 21:11:36 -04:00
pthread_key_create.c add proper fuxed-based locking for stdio 2011-07-30 08:02:14 -04:00
pthread_kill.c fix race condition in pthread_kill 2011-06-14 01:35:51 -04:00
pthread_mutex_consistent.c implement robust mutexes 2011-03-17 20:41:37 -04:00
pthread_mutex_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_mutex_init.c implement robust mutexes 2011-03-17 20:41:37 -04:00
pthread_mutex_lock.c avoid accessing mutex memory after atomic unlock 2011-08-02 20:31:15 -04:00
pthread_mutex_timedlock.c unify and overhaul timed futex waits 2011-08-02 21:11:36 -04:00
pthread_mutex_trylock.c avoid accessing mutex memory after atomic unlock 2011-08-02 20:31:15 -04:00
pthread_mutex_unlock.c avoid accessing mutex memory after atomic unlock 2011-08-02 20:31:15 -04:00
pthread_mutexattr_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_mutexattr_getpshared.c implement pthread_mutexattr_[gs]etpshared functions 2011-03-08 02:33:37 -05:00
pthread_mutexattr_getrobust.c implement robust mutexes 2011-03-17 20:41:37 -04:00
pthread_mutexattr_gettype.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_mutexattr_init.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_mutexattr_setpshared.c implement pthread_mutexattr_[gs]etpshared functions 2011-03-08 02:33:37 -05:00
pthread_mutexattr_setrobust.c implement robust mutexes 2011-03-17 20:41:37 -04:00
pthread_mutexattr_settype.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_once.c fix major breakage in pthread_once (it was always deadlocking) 2011-03-08 12:08:40 -05:00
pthread_rwlock_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_rwlock_init.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_rwlock_rdlock.c reorganize pthread data structures and move the definitions to alltypes.h 2011-02-17 17:16:20 -05:00
pthread_rwlock_timedrdlock.c unify and overhaul timed futex waits 2011-08-02 21:11:36 -04:00
pthread_rwlock_timedwrlock.c unify and overhaul timed futex waits 2011-08-02 21:11:36 -04:00
pthread_rwlock_tryrdlock.c rwlock trylock functions were wrongly returning EAGAIN instead of EBUSY 2011-03-08 12:19:30 -05:00
pthread_rwlock_trywrlock.c rwlock trylock functions were wrongly returning EAGAIN instead of EBUSY 2011-03-08 12:19:30 -05:00
pthread_rwlock_unlock.c reorganize pthread data structures and move the definitions to alltypes.h 2011-02-17 17:16:20 -05:00
pthread_rwlock_wrlock.c reorganize pthread data structures and move the definitions to alltypes.h 2011-02-17 17:16:20 -05:00
pthread_rwlockattr_destroy.c implement pthread_rwlockattr_* (essentially no-ops) 2011-03-07 16:43:25 -05:00
pthread_rwlockattr_getpshared.c implement pthread_rwlockattr_* (essentially no-ops) 2011-03-07 16:43:25 -05:00
pthread_rwlockattr_init.c implement pthread_rwlockattr_* (essentially no-ops) 2011-03-07 16:43:25 -05:00
pthread_rwlockattr_setpshared.c implement pthread_rwlockattr_* (essentially no-ops) 2011-03-07 16:43:25 -05:00
pthread_self.c add proper fuxed-based locking for stdio 2011-07-30 08:02:14 -04:00
pthread_setcancelstate.c fix minor bugs due to incorrect threaded-predicate semantics 2011-04-20 21:41:45 -04:00
pthread_setcanceltype.c optimize cancellation enable/disable code 2011-04-17 13:21:13 -04:00
pthread_setconcurrency.c implement pthread_[sg]etconcurrency. 2011-05-30 11:31:07 -04:00
pthread_setspecific.c optimize POSIX TSD for fast pthread_getspecific 2011-03-03 18:30:44 -05:00
pthread_sigmask.c clean up pthread_sigmask/sigprocmask dependency order 2011-07-30 21:09:14 -04:00
pthread_spin_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_spin_init.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_spin_lock.c revert some more spin optimizations that turned out to be pessimizations 2011-03-28 22:36:55 -04:00
pthread_spin_trylock.c revert some more spin optimizations that turned out to be pessimizations 2011-03-28 22:36:55 -04:00
pthread_spin_unlock.c prepare pthread_spin_unlock for archs that need memory barriers 2011-03-24 23:06:48 -04:00
pthread_testcancel.c overhaul pthread cancellation 2011-04-17 11:43:03 -04:00
sem_destroy.c implement POSIX semaphores 2011-03-04 00:45:59 -05:00
sem_getvalue.c implement POSIX semaphores 2011-03-04 00:45:59 -05:00
sem_init.c fix uninitialized waiters field in semaphores 2011-04-19 13:16:59 -04:00
sem_open.c fix useless use of potentially-uninitialized mode variable in sem_open 2011-06-26 16:34:05 -04:00
sem_post.c overhaul posix semaphores to fix destructability race 2011-08-02 19:19:09 -04:00
sem_timedwait.c fix sem_timedwait bug introduced in timedwait unification 2011-08-02 21:15:20 -04:00
sem_trywait.c overhaul posix semaphores to fix destructability race 2011-08-02 19:19:09 -04:00
sem_unlink.c implement POSIX semaphores 2011-03-04 00:45:59 -05:00
sem_wait.c implement POSIX semaphores 2011-03-04 00:45:59 -05:00
synccall.c fix bug in synccall with no threads: lock was taken but never released 2011-07-30 00:24:26 -04:00
syscall_cp.c overhaul pthread cancellation 2011-04-17 11:43:03 -04:00