cosmopolitan/third_party
Justine Tunney af7bd80430
Eliminate cyclic locks in runtime
This change introduces a new deadlock detector for Cosmo's POSIX threads
implementation. Error check mutexes will now track a DAG of nested locks
and report EDEADLK when a deadlock is theoretically possible. These will
occur rarely, but it's important for production hardening your code. You
don't even need to change your mutexes to use the POSIX error check mode
because `cosmocc -mdbg` will enable error checking on mutexes by default
globally. When cycles are found, an error message showing your demangled
symbols describing the strongly connected component are printed and then
the SIGTRAP is raised, which means you'll also get a backtrace if you're
using ShowCrashReports() too. This new error checker is so low-level and
so pure that it's able to verify the relationships of every libc runtime
lock, including those locks upon which the mutex implementation depends.
2024-12-16 22:25:12 -08:00
..
aarch64 Release Cosmopolitan v3.8.0 2024-08-30 20:14:07 -07:00
argon2 Release Cosmopolitan v3.3 2024-02-20 13:27:59 -08:00
awk Strongly link glob() into system() and popen() 2024-11-15 20:37:34 -08:00
bzip2 Release Cosmopolitan v3.6.0 2024-07-23 03:28:19 -07:00
chibicc Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
compiler_rt Implement more bf16/fp16 compiler runtimes 2024-09-13 05:06:34 -07:00
ctags Strongly link glob() into system() and popen() 2024-11-15 20:37:34 -08:00
dlmalloc Eliminate cyclic locks in runtime 2024-12-16 22:25:12 -08:00
double-conversion Release Cosmopolitan v3.8.0 2024-08-30 20:14:07 -07:00
finger Fix ctype.h and wctype.h 2024-07-21 15:54:17 -07:00
gdtoa Eliminate cyclic locks in runtime 2024-12-16 22:25:12 -08:00
getopt Delete ASAN 2024-06-22 05:45:49 -07:00
hiredis Fix ctype.h and wctype.h 2024-07-21 15:54:17 -07:00
intel Release Cosmopolitan v3.8.0 2024-08-30 20:14:07 -07:00
less Strongly link glob() into system() and popen() 2024-11-15 20:37:34 -08:00
libcxx Add missing pragma 2024-08-16 21:49:28 -07:00
libcxxabi Fix some static analysis issues 2024-07-27 09:16:54 -07:00
libunwind Release Cosmopolitan v3.8.0 2024-08-30 20:14:07 -07:00
linenoise Make improvements 2024-09-01 01:27:47 -07:00
lua Eliminate cyclic locks in runtime 2024-12-16 22:25:12 -08:00
lz4cli Implement proper time zone support 2024-05-04 23:06:37 -07:00
make Release Cosmopolitan v3.6.0 2024-07-23 03:28:19 -07:00
maxmind Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
mbedtls Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
musl Define glob64 2024-10-12 15:26:10 -07:00
ncurses Release Cosmopolitan v3.6.0 2024-07-23 03:28:19 -07:00
nsync Eliminate cyclic locks in runtime 2024-12-16 22:25:12 -08:00
openmp Introduce cosmo_futex_wait and cosmo_futex_wake 2024-11-22 11:25:15 -08:00
pcre Update Musl Libc code 2024-07-30 22:51:29 -07:00
puff Delete ASAN 2024-06-22 05:45:49 -07:00
python Strongly link glob() into system() and popen() 2024-11-15 20:37:34 -08:00
qemu more modeline errata (#1019) 2023-12-16 23:07:10 -05:00
readline Fix --ftrace on Windows 2024-01-01 00:00:42 -08:00
regex Update Musl Libc code 2024-07-30 22:51:29 -07:00
sed Strongly link tr and sed into system() and popen() 2024-11-15 21:23:49 -08:00
smallz4 Release Cosmopolitan v3.8.0 2024-08-30 20:14:07 -07:00
sqlite3 Strongly link glob() into system() and popen() 2024-11-15 20:37:34 -08:00
stb Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
tidy Fix MODE=optlinux and MODE=tiny builds 2024-07-23 04:04:19 -07:00
tr Strongly link tr and sed into system() and popen() 2024-11-15 21:23:49 -08:00
tree Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
tz Eliminate cyclic locks in runtime 2024-12-16 22:25:12 -08:00
unzip Update Musl Libc code 2024-07-30 22:51:29 -07:00
vqsort more modeline errata (#1019) 2023-12-16 23:07:10 -05:00
xed Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
xxhash Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
zip Strongly link glob() into system() and popen() 2024-11-15 20:37:34 -08:00
zlib Import some Chromium Zlib changes 2024-10-11 07:04:02 -07:00
zstd Remove .internal from more header filenames 2024-08-04 12:52:25 -07:00
.clang-format Reduce header complexity 2023-11-28 14:39:42 -08:00
BUILD.mk Release Cosmopolitan v3.6.0 2024-07-23 03:28:19 -07:00