aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Thread/WaitGroup.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/Thread/WaitGroup.zig')
-rw-r--r--lib/std/Thread/WaitGroup.zig5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/std/Thread/WaitGroup.zig b/lib/std/Thread/WaitGroup.zig
index bdc49587bf..52e9c379c2 100644
--- a/lib/std/Thread/WaitGroup.zig
+++ b/lib/std/Thread/WaitGroup.zig
@@ -14,6 +14,11 @@ pub fn start(self: *WaitGroup) void {
assert((state / one_pending) < (std.math.maxInt(usize) / one_pending));
}
+pub fn startMany(self: *WaitGroup, n: usize) void {
+ const state = self.state.fetchAdd(one_pending * n, .monotonic);
+ assert((state / one_pending) < (std.math.maxInt(usize) / one_pending));
+}
+
pub fn finish(self: *WaitGroup) void {
const state = self.state.fetchSub(one_pending, .acq_rel);
assert((state / one_pending) > 0);