aboutsummaryrefslogtreecommitdiff
path: root/src/stage1/parser.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-12-23 16:57:18 -0800
committerAndrew Kelley <andrew@ziglang.org>2020-12-23 16:57:18 -0800
commit177377b6e356b34bbed40cadca596658d158af6b (patch)
treeed7e0a7fa146b8c15044e21f386ec8a8e2977695 /src/stage1/parser.cpp
parent5377b7fb97311448daa3c29a8c8f100656d871ba (diff)
downloadzig-177377b6e356b34bbed40cadca596658d158af6b.tar.gz
zig-177377b6e356b34bbed40cadca596658d158af6b.zip
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.
Diffstat (limited to 'src/stage1/parser.cpp')
0 files changed, 0 insertions, 0 deletions