mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 03:27:39 +00:00
965516e313
- Get SIGWINCH working again on the New Technology - Correctly handle O_NOFOLLOW in open() on Windows - Implement synthetic umask() functionality on Windows - Do a better job managing file execute access on Windows - Fill in `st_uid` and `st_gid` with username hash on Windows - Munge UNICODE control pictures into control codes on Windows - Do a better job ensuring Windows console settings are restored - Introduce KPRINTF_LOG environment variable to log kprintf to a file |
||
---|---|---|
.. | ||
mem | ||
testing | ||
array.internal.h | ||
atomic.h | ||
atomic.internal.h | ||
common.c | ||
common.internal.h | ||
compat.S | ||
counter.h | ||
cv.h | ||
debug.h | ||
futex.c | ||
futex.internal.h | ||
heap.internal.h | ||
LICENSE.txt | ||
mu.c | ||
mu.h | ||
mu_semaphore.c | ||
mu_semaphore.h | ||
mu_semaphore.internal.h | ||
mu_semaphore_futex.c | ||
mu_semaphore_gcd.c | ||
mu_semaphore_sem.c | ||
mu_wait.h | ||
note.h | ||
nsync.mk | ||
once.h | ||
panic.c | ||
races.internal.h | ||
README.cosmo | ||
README.md | ||
time.h | ||
wait_s.internal.h | ||
waiter.h | ||
waiter_per_thread.c | ||
yield.c |
*NSYNC
*NSYNC is a library providing scalable synchronization primitives. The following packages are provided:
THIRD_PARTY_NSYNC
hasnsync_mu
which doesn't depend on malloc().THIRD_PARTY_NSYNC_MEM
has the rest of *NSYNC, e.g.nsync_cv
.
The origin of this code is here:
git@github.com:google/nsync
ac5489682760393fe21bd2a8e038b528442412a7 (1.25.0)
Author: Mike Burrows <m3b@google.com>
Date: Wed Jun 1 16:47:52 2022 -0700
NSYNC uses the Apache 2.0 license. We made the following local changes:
-
Write custom
nsync_malloc_()
somalloc()
can use *NSYNC. -
Rewrite
futex()
wrapper to support old Linux kernels and OpenBSD. -
Normalize sources to Cosmopolitan style conventions; *NSYNC upstream supports dozens of compilers and operating systems, at compile-time. Since Cosmo solves portability at runtime instead, most of the build config toil has been removed, in order to help the NSYNC source code be more readable and hackable.