mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 12:59:04 +00:00
apply kprotty's WaitGroup fix
This commit is contained in:
parent
19459840fe
commit
78ab1f609a
@ -32,19 +32,21 @@ pub fn stop(self: *WaitGroup) void {
|
||||
}
|
||||
|
||||
pub fn wait(self: *WaitGroup) void {
|
||||
const held = self.lock.acquire();
|
||||
while (true) {
|
||||
const held = self.lock.acquire();
|
||||
|
||||
if (self.counter == 0) {
|
||||
held.release();
|
||||
return;
|
||||
}
|
||||
|
||||
var event = std.ResetEvent.init();
|
||||
defer event.deinit();
|
||||
|
||||
std.debug.assert(self.event == null);
|
||||
self.event = &event;
|
||||
|
||||
if (self.counter == 0) {
|
||||
held.release();
|
||||
return;
|
||||
event.wait();
|
||||
}
|
||||
|
||||
var event = std.ResetEvent.init();
|
||||
defer event.deinit();
|
||||
|
||||
std.debug.assert(self.event == null);
|
||||
self.event = &event;
|
||||
|
||||
held.release();
|
||||
event.wait();
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user