cosmopolitan/libc/thread
Justine Tunney 8c645fa1ee
Make mmap() scalable
It's now possible to create thousands of thousands of sparse independent
memory mappings, without any slowdown. The memory manager is better with
tracking memory protection now, particularly on Windows in a precise way
that can be restored during fork(). You now have the highest quality mem
manager possible. It's even better than some OSes like XNU, where mmap()
is implemented as an O(n) operation which means sadly things aren't much
improved over there. With this change the llamafile HTTP server endpoint
at /tokenize with a prompt of 50 tokens is now able to handle 2.6m r/sec
2024-07-05 23:26:00 -07:00
..
alarm.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
BUILD.mk Make malloc() go 200x faster 2024-06-05 02:02:14 -07:00
freebsd.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
getitimer.c Delete ASAN 2024-06-22 05:45:49 -07:00
getstackbottom.c Rewrite memory manager 2024-06-22 05:45:11 -07:00
itimer.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
itimer.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
lock.h Fix bugs with new memory manager 2024-06-29 10:53:57 -07:00
makecontext.c Make improvements 2024-02-12 10:23:00 -08:00
mktls.c Delete ASAN 2024-06-22 05:45:49 -07:00
openbsd.internal.h Rewrite memory manager 2024-06-22 05:45:11 -07:00
posixthread.internal.h Reduce code size of mandatory runtime 2024-07-04 02:50:20 -07:00
pt.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
pthread_atfork.c Introduce ctl::set and ctl::map 2024-06-23 22:27:11 -07:00
pthread_attr_destroy.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_getdetachstate.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_getguardsize.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_getinheritsched.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_getschedparam.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_getschedpolicy.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_getscope.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_getsigmask_np.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
pthread_attr_getstack.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_getstacksize.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_init.c Simplify memory manager 2024-07-05 05:47:15 -07:00
pthread_attr_setdetachstate.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_setguardsize.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
pthread_attr_setinheritsched.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_setschedparam.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_setschedpolicy.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_setscope.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_setsigmask_np.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_attr_setstack.c Delete ASAN 2024-06-22 05:45:49 -07:00
pthread_attr_setstacksize.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
pthread_barrier_destroy.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_barrier_init.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
pthread_barrier_wait.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_barrierattr_destroy.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_barrierattr_getpshared.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_barrierattr_init.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_barrierattr_setpshared.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_cancel.c Make POSIX threads improvements 2024-06-30 15:38:59 -07:00
pthread_cond_broadcast.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_cond_destroy.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_cond_init.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_cond_signal.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_cond_timedwait.c Fix bugs with new memory manager 2024-06-29 10:53:57 -07:00
pthread_cond_wait.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_condattr_destroy.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_condattr_getpshared.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_condattr_init.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_condattr_setpshared.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_create.c Make mmap() scalable 2024-07-05 23:26:00 -07:00
pthread_decimate_np.c Introduce pthread_decimate_np() api 2024-06-30 02:26:06 -07:00
pthread_detach.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_equal.c Add much of C11 threads.h API 2024-04-28 07:04:08 -07:00
pthread_exit.c Reduce code size of mandatory runtime 2024-07-04 02:50:20 -07:00
pthread_getaffinity_np.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_getattr_np.c Rewrite memory manager 2024-06-22 05:45:11 -07:00
pthread_getname_np.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
pthread_getschedparam.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_getspecific.c Make malloc() go 200x faster 2024-06-05 02:02:14 -07:00
pthread_getthreadid_np.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_getunique_np.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_join.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_key_create.c Make POSIX threads improvements 2024-06-30 15:38:59 -07:00
pthread_key_delete.c Make POSIX threads improvements 2024-06-30 15:38:59 -07:00
pthread_kill.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_once.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_reschedule.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlock_destroy.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlock_init.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlock_rdlock.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlock_tryrdlock.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlock_trywrlock.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlock_unlock.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlock_wrlock.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlockattr_destroy.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlockattr_getpshared.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlockattr_init.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_rwlockattr_setpshared.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_self.c Add much of C11 threads.h API 2024-04-28 07:04:08 -07:00
pthread_setaffinity_np.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_setcanceltype.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
pthread_setname_np.c Delete ASAN 2024-06-22 05:45:49 -07:00
pthread_setschedparam.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_setschedparam_freebsd.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_setschedprio.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_sigmask.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_timedjoin_np.c Fix --strace use-after-free in pthread_join() 2024-06-22 06:05:52 -07:00
pthread_tryjoin_np.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pthread_zombify.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
README.md Use *NSYNC for POSIX threads locking APIs 2022-09-11 11:04:50 -07:00
sem_destroy.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
sem_getvalue.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
sem_init.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
sem_open.c Run clang-format (#1197) 2024-06-01 16:30:43 -04:00
sem_post.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
sem_timedwait.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
sem_trywait.c Apply clang-format update to repo (#1154) 2024-04-25 10:38:00 -07:00
sem_wait.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
semaphore.h Add dontthrow attribute to most libc functions 2024-01-09 01:26:03 -08:00
setitimer.c Delete ASAN 2024-06-22 05:45:49 -07:00
thrd_create.c Add much of C11 threads.h API 2024-04-28 07:04:08 -07:00
thrd_detach.c Add much of C11 threads.h API 2024-04-28 07:04:08 -07:00
thrd_join.c Add much of C11 threads.h API 2024-04-28 07:04:08 -07:00
thread.h Make mmap() scalable 2024-07-05 23:26:00 -07:00
thread2.h Add dontthrow attribute to most libc functions 2024-01-09 01:26:03 -08:00
threads.h Introduce support for trapping math 2024-04-30 13:38:43 -07:00
tls.h Make POSIX threads improvements 2024-06-30 15:38:59 -07:00
tls2.internal.h Walk back most uses of __STRICT_ANSI__ 2024-02-27 04:09:49 -08:00
ualarm.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
xnu.internal.h Reduce header complexity 2023-11-28 14:39:42 -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.