cosmopolitan/libc/runtime
Justine Tunney 2278327eba
Implement support for POSIX thread cancellations
This change makes some miracle modifications to the System Five system
call support, which lets us have safe, correct, and atomic handling of
thread cancellations. It all turned out to be cheaper than anticipated
because it wasn't necessary to modify the system call veneers. We were
able to encode the cancellability of each system call into the magnums
found in libc/sysv/syscalls.sh. Since cancellations are so waq, we are
also supporting a lovely Musl Libc mask feature for raising ECANCELED.
2022-11-04 01:04:43 -07:00
..
__sigsetjmp_tail.c Improve cosmo's conformance to libc-test 2022-10-10 17:52:41 -07:00
__utmpxname.S Add finger demo to redbean and fix regression 2022-06-23 03:42:05 -07:00
abort.c Add notpossible keyword 2022-09-03 20:35:31 -07:00
arch_prctl.c Make more threading improvements 2022-11-01 23:28:26 -07:00
brk.c Make more threading improvements 2022-11-01 23:28:26 -07:00
brk.internal.h Rewrite brk() and sbrk() 2022-10-01 23:11:56 -07:00
buffer.internal.h Pay off more technical debt 2022-09-12 23:36:56 -07:00
clktck.c Add sys_ prefix to unwrapped system calls 2022-09-13 11:20:35 -07:00
clktck.h Make major improvements to redbean and libraries 2021-04-18 12:34:15 -07:00
clone-linux.S Pay off more technical debt 2022-09-12 23:36:56 -07:00
clone-nt.S Pay off more technical debt 2022-09-12 23:36:56 -07:00
clone-openbsd.S Pay off more technical debt 2022-09-12 23:36:56 -07:00
clone.c Elevate Windows production worthiness 2022-10-13 13:44:41 -07:00
clone.internal.h Pay off more technical debt 2022-09-12 23:36:56 -07:00
closesymboltable.c Reduce makefile dependencies by 10% 2022-06-08 20:01:28 -07:00
cocmd.c Rearrange code and make a faster sha256sum program 2022-11-02 23:19:16 -07:00
cosmo.S Workaround WSL misconfiguring the x87 FPU 2022-11-02 02:17:14 -07:00
daemon.c Greatly expand system() shell code features 2022-10-11 21:30:31 -07:00
dlfcn.h Get Fabrice Bellard's JavaScript engine to build 2021-04-09 01:06:57 -07:00
dsohandle.S Introduce --strace flag for system call tracing 2022-03-18 18:07:28 -07:00
e820.internal.h Support malloc() on bare metal 2021-02-24 00:53:24 -08:00
efimain.greg.c Make some foss compatibility improvements 2022-10-14 13:59:34 -07:00
enable_threads.c Make fixes and improvements 2022-10-19 07:19:19 -07:00
enable_tls.c Make more threading improvements 2022-11-01 23:28:26 -07:00
endutent.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
endutxent.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
exit.c Fix bugs and make code tinier 2022-10-09 23:21:34 -07:00
exit2.c Support malloc() on bare metal 2021-02-24 00:53:24 -08:00
ezmap.c Fold LIBC_BITS into LIBC_INTRIN 2022-08-11 12:13:18 -07:00
ezmap.internal.h Improve documentation 2020-12-27 07:02:35 -08:00
fegetround.c Get Fabrice Bellard's JavaScript engine to build 2021-04-09 01:06:57 -07:00
fenv.c Get Fabrice Bellard's JavaScript engine to build 2021-04-09 01:06:57 -07:00
fenv.h Improve cosmo's conformance to libc-test 2022-10-10 17:52:41 -07:00
fenv.S Improve cosmo's conformance to libc-test 2022-10-10 17:52:41 -07:00
fesetround.c Fix issues revealed by ECMAScript test262 2021-04-10 17:15:35 -07:00
findcombinary.c Make improvements 2022-04-28 09:57:07 -07:00
finddebugbinary.c Fold LIBC_BITS into LIBC_INTRIN 2022-08-11 12:13:18 -07:00
fltrounds.c Fix issues revealed by ECMAScript test262 2021-04-10 17:15:35 -07:00
fork-nt.c Make more threading improvements 2022-11-01 23:28:26 -07:00
fork-sysv.c Make fixes and improvements 2022-10-19 07:19:19 -07:00
fork.c Make fixes and improvements 2022-10-19 07:19:19 -07:00
fpathconf.c Make more compatibility improvements 2022-09-06 12:36:34 -07:00
fpreset.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
free_s.c Improve locks and signals 2022-04-12 05:20:17 -07:00
ftrace-hook.S Make some systemic improvements 2022-05-18 16:52:36 -07:00
ftraceinit.greg.c Make more threading improvements 2022-11-01 23:28:26 -07:00
ftracer.c Make more threading improvements 2022-11-01 23:28:26 -07:00
getargmax.c Make improvements 2022-04-28 09:57:07 -07:00
getdosargv.c Have execve() escape double quotes in cmd.exe's preferred style 2022-10-02 09:15:46 -07:00
getdosenviron.c Have execve() escape double quotes in cmd.exe's preferred style 2022-10-02 09:15:46 -07:00
getinterpreterexecutablename.c Add sys_ prefix to unwrapped system calls 2022-09-13 11:20:35 -07:00
getlogin.c Add sys_ prefix to unwrapped system calls 2022-09-13 11:20:35 -07:00
getlogin_r.c Add sys_ prefix to unwrapped system calls 2022-09-13 11:20:35 -07:00
getmaxfd.c Reduce Makefile dependencies by 4% 2022-05-23 15:07:01 -07:00
getmemtracksize.c Add malloc logging tool 2022-05-26 23:19:22 -07:00
getpagesize.S Make more improvements to threading support 2022-10-09 00:08:47 -07:00
getresourcelimit.c Reduce makefile dependencies by 10% 2022-06-08 20:01:28 -07:00
getsymbolname.c Improve memory safety 2021-10-13 17:27:13 -07:00
getsymboltable.c Pay off more technical debt 2022-09-12 23:36:56 -07:00
getutent.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
getutid.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
getutxent.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
getutxid.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
getutxline.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
grow.c Fix bugs and make code tinier 2022-10-09 23:21:34 -07:00
hook.greg.c Make fixes and improvements 2022-10-19 07:19:19 -07:00
inflate.c Pay off more technical debt 2022-09-12 23:36:56 -07:00
init.S Reduce build graph by another 14 percent 2022-08-17 20:01:21 -07:00
interceptflag.greg.c Improve synchronization 2022-04-15 15:31:55 -07:00
internal.h Add WSL to test fleet 2022-11-02 06:49:42 -07:00
isdynamicexecutable.c Fold LIBC_BITS into LIBC_INTRIN 2022-08-11 12:13:18 -07:00
isheap.c Fix some issues and do some code cleanup 2022-05-23 10:15:53 -07:00
ismemtracked.greg.c Make some more fixups 2022-06-12 09:37:17 -07:00
jmpstack.S Improve signals and memory protection 2022-04-12 22:11:00 -07:00
ldso.c Get Fabrice Bellard's JavaScript engine to build 2021-04-09 01:06:57 -07:00
login_tty.c Introduce clock_nanosleep() 2022-10-05 06:37:15 -07:00
mapanon.c Pay off more technical debt 2022-09-12 23:36:56 -07:00
mapelfread.c Change license 2020-12-27 17:18:44 -08:00
mapshared.c Pay off more technical debt 2022-09-12 23:36:56 -07:00
mapstack.c Add phtread_setname_np() and pthread_getname_np() 2022-09-07 19:04:05 -07:00
memtrack.internal.h Make fixes and improvements 2022-10-19 07:19:19 -07:00
memtrack64.txt Implement pthread_atfork() 2022-10-16 12:25:13 -07:00
memtracknt.c Pay off more technical debt 2022-09-12 23:36:56 -07:00
metalprintf.greg.c Improve synchronization 2022-04-15 15:31:55 -07:00
metalprintf.internal.h Support malloc() on bare metal 2021-02-24 00:53:24 -08:00
mman.internal.h Show "screen of death" on VGA console upon program crash () 2022-10-06 05:36:15 -07:00
mmap.c Workaround MAP_GROWSDOWN unavailability on WSL 2022-11-02 01:38:06 -07:00
morph.greg.c Make fixes and improvements 2022-10-19 07:19:19 -07:00
morph.h Make fixes and improvements 2022-10-19 07:19:19 -07:00
morph_tls.c Make more threading improvements 2022-11-01 23:28:26 -07:00
mprotect-nt.greg.c Make more threading improvements 2022-11-01 23:28:26 -07:00
mprotect.c Fix corner case in Linux stack mappings 2022-10-03 13:43:52 -07:00
mremap.c Make more threading improvements 2022-11-01 23:28:26 -07:00
msync-nt.c Clean up some of the threading code 2022-09-08 12:31:56 -07:00
msync.c Implement support for POSIX thread cancellations 2022-11-04 01:04:43 -07:00
munmap.c Make more threading improvements 2022-11-01 23:28:26 -07:00
openexecutable.S Fix Redbean when file is read-only () 2022-03-14 17:13:28 -07:00
opensymboltable.greg.c Pay off more technical debt 2022-09-12 23:36:56 -07:00
pathconf.h Make more compatibility improvements 2022-09-06 12:36:34 -07:00
pc.internal.h Start exploring graphical video modes for VGA console () 2022-10-02 01:50:16 -07:00
peekall.S Add MODE=optlinux build mode () 2021-10-14 19:36:49 -07:00
printargs.c Make more threading improvements 2022-11-01 23:28:26 -07:00
printmaps.c Clean up some of the threading code 2022-09-08 12:31:56 -07:00
progname.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
runtime.h Make more threading improvements 2022-11-01 23:28:26 -07:00
runtime.mk Improve pthread_join() 2022-09-16 14:02:06 -07:00
set_tls.c Make more threading improvements 2022-11-01 23:28:26 -07:00
setstack.S Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
setutent.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
setutxent.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
sigsetjmp.S Improve cosmo's conformance to libc-test 2022-10-10 17:52:41 -07:00
stack.h Optimize memory layout 2022-09-12 04:26:52 -07:00
stackchkfail.c Pay off more technical debt 2022-09-12 23:36:56 -07:00
stackchkfaillocal.c Change license 2020-12-27 17:18:44 -08:00
stackuse.c Fix bugs and make code tinier 2022-10-09 23:21:34 -07:00
straceinit.greg.c Make more threading improvements 2022-11-01 23:28:26 -07:00
symbolic.h wip on intellisense (again) 2021-02-02 11:14:45 -05:00
symbols.c Make more threading improvements 2022-11-01 23:28:26 -07:00
symbols.internal.h Fold LIBC_BITS into LIBC_INTRIN 2022-08-11 12:13:18 -07:00
sysconf.c Greatly expand system() shell code features 2022-10-11 21:30:31 -07:00
sysconf.h Greatly expand system() shell code features 2022-10-11 21:30:31 -07:00
untrackmemoryintervals.c Fix bugs and make code tinier 2022-10-09 23:21:34 -07:00
unwind.c Fix libunwind stubs 2022-06-26 05:29:25 -07:00
unwind.h Fix libunwind stubs 2022-06-26 05:29:25 -07:00
updwtmp.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
updwtmpx.S Make more compatibility improvements 2022-09-06 07:04:13 -07:00
utmp.h Add finger demo to redbean and fix regression 2022-06-23 03:42:05 -07:00
utmpx.h Add finger demo to redbean and fix regression 2022-06-23 03:42:05 -07:00
valist.c Remove plenty of makefile misconfigurations 2022-07-21 09:20:59 -07:00
vfork.S Make fixes and improvements 2022-10-19 07:19:19 -07:00
warnifpowersave.c Pay off more technical debt 2022-09-12 23:36:56 -07:00
weakfree.c Pay off more technical debt 2022-09-12 23:36:56 -07:00
winargs.internal.h Add torture test for zipos file descriptors 2022-06-15 16:29:49 -07:00
winmain.greg.c Workaround WSL misconfiguring the x87 FPU 2022-11-02 02:17:14 -07:00