zig/lib
Andrew Kelley 177377b6e3 rework std.ResetEvent, improve std lib Darwin integration
* split std.ResetEvent into:
   - ResetEvent - requires init() at runtime and it can fail. Also
     requires deinit().
   - StaticResetEvent - can be statically initialized and requires no
     deinitialization. Initialization cannot fail.
 * the POSIX sem_t implementation can in fact fail on initialization
   because it is allowed to be implemented as a file descriptor.
 * Completely define, clarify, and explain in detail the semantics of
   these APIs. Remove the `isSet` function.
 * `ResetEvent.timedWait` returns an enum instead of a possible error.
 * `ResetEvent.init` takes a pointer to the ResetEvent instead of
   returning a copy.
 * On Darwin, `ResetEvent` is implemented using Grand Central Dispatch,
   which is exposed by libSystem.

stage2 changes:
 * ThreadPool: use a single, pre-initialized `ResetEvent` per worker.
 * WaitGroup: now requires init() and deinit() and init() can fail.
   - Add a `reset` function.
   - Compilation initializes one for the work queue in creation and
     re-uses it for every update.
   - Rename `stop` to `finish`.
   - Simplify the implementation based on the usage pattern.
2020-12-23 16:57:18 -08:00
..
include update to latest clang C headers 2020-12-04 15:39:16 -07:00
libc macho: deduplicate libc headers between macos arch 2020-12-17 10:04:53 +01:00
libcxx update install files for LLVM 11rc1 2020-08-04 17:52:26 -07:00
libcxxabi update install files for LLVM 11rc1 2020-08-04 17:52:26 -07:00
libunwind update libunwind to llvm 11rc2 2020-08-25 14:13:14 -07:00
std rework std.ResetEvent, improve std lib Darwin integration 2020-12-23 16:57:18 -08:00