cosmopolitan/libc/thread
Justine Tunney 298ba74a45
Make POSIX semaphores always process shared
Python triggered the undefined behavior previously since it appears to
be posting to a semaphore owned by a different process that wasn't set
to process shared mode. The performance loss to process shared futexes
is so low and semaphores are generally used for this purpose, so it'll
be much simpler to simply not impose undefined behavior here.
2023-02-23 08:07:54 -08:00
..
freebsd.internal.h Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
mktls.c Make more threading improvements 2022-11-01 23:28:26 -07:00
openbsd.internal.h Make fixes and improvements 2022-06-25 21:09:09 -07:00
posixthread.internal.h Make improvements 2022-11-10 21:52:47 -08:00
pthread_atfork.c Make detached threads work better 2022-11-09 03:58:57 -08:00
pthread_attr_destroy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_attr_getdetachstate.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_attr_getguardsize.c Make more improvements to threading support 2022-10-09 00:08:47 -07:00
pthread_attr_getinheritsched.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_attr_getschedparam.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_attr_getschedpolicy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_attr_getscope.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_attr_getsigmask_np.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_attr_getstack.c Make more improvements to threading support 2022-10-09 00:08:47 -07:00
pthread_attr_getstacksize.c Make more improvements to threading support 2022-10-09 00:08:47 -07:00
pthread_attr_init.c Increase stack size to 128k and guard size to 16k 2022-12-18 22:58:29 -08:00
pthread_attr_setdetachstate.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_attr_setguardsize.c Make more improvements to threading support 2022-10-09 00:08:47 -07:00
pthread_attr_setinheritsched.c Fix bugs and make code tinier 2022-10-09 23:21:34 -07:00
pthread_attr_setschedparam.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_attr_setschedpolicy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_attr_setscope.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_attr_setsigmask_np.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_attr_setstack.c Make more improvements to threading support 2022-10-09 00:08:47 -07:00
pthread_attr_setstacksize.c Make more improvements to threading support 2022-10-09 00:08:47 -07:00
pthread_barrier_destroy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_barrier_init.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_barrier_wait.c Improve system call wrappers 2022-09-19 15:06:25 -07:00
pthread_barrierattr_destroy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_barrierattr_getpshared.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_barrierattr_init.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_barrierattr_setpshared.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_cancel.c Make detached threads work better 2022-11-09 03:58:57 -08:00
pthread_cond_broadcast.c Clean up some code 2022-12-11 14:30:59 -08:00
pthread_cond_destroy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_cond_init.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_cond_signal.c Improve system call wrappers 2022-09-19 15:06:25 -07:00
pthread_cond_timedwait.c Improve cancellations, randomness, and time 2022-11-05 23:45:32 -07:00
pthread_cond_wait.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_condattr_destroy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_condattr_getpshared.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_condattr_init.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_condattr_setpshared.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_create.c Increase stack size to 128k and guard size to 16k 2022-12-18 22:58:29 -08:00
pthread_decimate_np.c Make detached threads work better 2022-11-09 03:58:57 -08:00
pthread_detach.c Make detached threads work better 2022-11-09 03:58:57 -08:00
pthread_equal.c Improve cosmo's conformance to libc-test 2022-10-10 17:52:41 -07:00
pthread_exit.c Make detached threads work better 2022-11-09 03:58:57 -08:00
pthread_getaffinity_np.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_getattr_np.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_getname_np.c Make fixes and improvements 2022-11-08 10:11:46 -08:00
pthread_getschedparam.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_getthreadid_np.c Tidy up the threading implementation 2022-09-10 02:56:25 -07:00
pthread_getunique_np.c Make fixes and improvements 2022-11-08 10:11:46 -08:00
pthread_join.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_kill.c Make fixes and improvements 2022-11-08 10:11:46 -08:00
pthread_mutex_destroy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_mutexattr_destroy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_mutexattr_getpshared.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_mutexattr_gettype.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_mutexattr_init.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_mutexattr_setpshared.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_mutexattr_settype.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_orphan_np.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_print_np.c Make detached threads work better 2022-11-09 03:58:57 -08:00
pthread_reschedule.c Make fixes and improvements 2022-11-08 10:11:46 -08:00
pthread_rwlock_destroy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_rwlock_init.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_rwlock_rdlock.c Improve system call wrappers 2022-09-19 15:06:25 -07:00
pthread_rwlock_unlock.c Improve system call wrappers 2022-09-19 15:06:25 -07:00
pthread_rwlock_wrlock.c Improve system call wrappers 2022-09-19 15:06:25 -07:00
pthread_rwlockattr_destroy.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_rwlockattr_getpshared.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_rwlockattr_init.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_rwlockattr_setpshared.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_self.c Make fixes and improvements 2022-10-19 07:19:19 -07:00
pthread_setaffinity_np.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_setcanceltype.c Improve cancellations, randomness, and time 2022-11-05 23:45:32 -07:00
pthread_setname_np.c Make fixes and improvements 2022-11-08 10:11:46 -08:00
pthread_setschedparam.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_setschedparam_freebsd.c Add sys_ prefix to unwrapped system calls 2022-09-13 11:20:35 -07:00
pthread_setschedprio.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_sigmask.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
pthread_timedjoin_np.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_tryjoin_np.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_ungarbage.c Make detached threads work better 2022-11-09 03:58:57 -08:00
pthread_zombify.c Make detached threads work better 2022-11-09 03:58:57 -08:00
README.md Use *NSYNC for POSIX threads locking APIs 2022-09-11 11:04:50 -07:00
sem_destroy.c Implement pthread_atfork() 2022-10-16 12:25:13 -07:00
sem_getvalue.c Make POSIX semaphores always process shared 2023-02-23 08:07:54 -08:00
sem_init.c Make improvements 2022-11-07 02:26:06 -08:00
sem_open.c Make improvements 2022-11-07 02:26:06 -08:00
sem_path_np.c Make some system call fixes 2023-02-12 22:16:34 -08:00
sem_post.c Make POSIX semaphores always process shared 2023-02-23 08:07:54 -08:00
sem_timedwait.c Make POSIX semaphores always process shared 2023-02-23 08:07:54 -08:00
sem_trywait.c Make POSIX semaphores always process shared 2023-02-23 08:07:54 -08:00
sem_wait.c Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
semaphore.h Implement pthread_atfork() 2022-10-16 12:25:13 -07:00
spawn.c Make improvements 2022-11-10 21:52:47 -08:00
spawn.h Rename hidden keyword to _Hide 2022-11-08 12:55:28 -08:00
thread.h Fix recursive locks when tid is huge 2023-01-03 05:01:00 -08:00
thread.mk Implement support for POSIX thread cancellations 2022-11-04 01:04:43 -07:00
thread2.h Make improvements 2022-11-10 21:52:47 -08:00
tls.h Make detached threads work better 2022-11-09 03:58:57 -08:00
tls2.h Elevate Windows production worthiness 2022-10-13 13:44:41 -07:00
wait0.c Fix the build 2022-11-11 11:13:21 -08:00
wait0.internal.h Make improvements 2022-11-10 21:52:47 -08:00
xnu.internal.h Make fixes and improvements 2022-11-08 10:11:46 -08:00

Cosmpolitan POSIX Threads Library

Cosmopolitan Libc implements threading as it is written in The Open Group Base Specifications Issue 7, 2018 edition IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008) in addition to GNU extensions.