cosmopolitan/libc/thread
Justine Tunney 197aa0d465
Implement swapcontext() and makecontext()
This change introduces support for Linux-style uc_context manipulation
that's fast and works well on all supported OSes and architectures. It
also integrates with the Cosmpolitan runtime which can show backtraces
comprised of multiple stacks and fibers. See the test and example code
for further details. This will be used by Mold once it's been vendored
2023-07-02 09:01:44 -07:00
..
freebsd.internal.h Make futexes cancellable by pthreads 2022-11-04 18:36:34 -07:00
makecontext.c Implement swapcontext() and makecontext() 2023-07-02 09:01:44 -07:00
mktls.c Make improvements 2023-06-03 08:12:22 -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 Improve aarch64 native support some more 2023-06-04 08:58:47 -07: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 Introduce #include <cosmo.h> to toolchain users 2023-06-09 18:03:05 -07: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 Fix some more issues with aarch64 and llama.cpp 2023-05-10 07:34:26 -07:00
pthread_attr_setstack.c Implement swapcontext() and makecontext() 2023-07-02 09:01:44 -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 Port a lot more code to AARCH64 2023-05-14 09:37:26 -07: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 Introduce #include <cosmo.h> to toolchain users 2023-06-09 18:03:05 -07:00
pthread_decimate_np.c Make detached threads work better 2022-11-09 03:58:57 -08:00
pthread_detach.c Fix bugs in cosmocc toolchain 2023-06-08 23:44:03 -07:00
pthread_equal.c Improve cosmo's conformance to libc-test 2022-10-10 17:52:41 -07:00
pthread_exit.c Fix bugs in cosmocc toolchain 2023-06-08 23:44:03 -07:00
pthread_getaffinity_np.c Make improvements 2022-11-10 21:52:47 -08:00
pthread_getattr_np.c Fix bugs in cosmocc toolchain 2023-06-08 23:44:03 -07:00
pthread_getname_np.c Make improvements 2023-06-03 08:12:22 -07: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 Fix bugs in cosmocc toolchain 2023-06-08 23:44:03 -07: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 improvements 2023-06-03 08:12:22 -07: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 Implement swapcontext() and makecontext() 2023-07-02 09:01:44 -07:00
spawn.h Rename hidden keyword to _Hide 2022-11-08 12:55:28 -08:00
thread.h Introduce #include <cosmo.h> to toolchain users 2023-06-09 18:03:05 -07:00
thread.mk Clean up more code 2023-06-18 01:00:05 -07:00
thread2.h Make improvements 2022-11-10 21:52:47 -08:00
tls.h Make improvements 2023-06-03 08:12:22 -07:00
tls2.h Get --ftrace working on aarch64 2023-06-05 23:35:31 -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.