mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-07 15:03:34 +00:00
26 lines
1,002 B
Markdown
26 lines
1,002 B
Markdown
# *NSYNC
|
|
|
|
*NSYNC is a library providing scalable synchronization primitives. The
|
|
following packages are provided:
|
|
|
|
- `THIRD_PARTY_NSYNC` has `nsync_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_()` so `malloc()` 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.
|