summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--exercises/107_threading.zig11
1 files changed, 5 insertions, 6 deletions
diff --git a/exercises/107_threading.zig b/exercises/107_threading.zig
index 5072648..aaec6b1 100644
--- a/exercises/107_threading.zig
+++ b/exercises/107_threading.zig
@@ -75,10 +75,10 @@ pub fn main() !void {
std.debug.print("Starting work...\n", .{});
// These curly braces are very important, they are necessary
- // to enclose the area where the threads are called.
- // Without these braces, the program would not wait for the
- // end of the threads and they would continue to run beyond the
- // end of the program.
+ // to enclose the area where the threads are called and joined.
+ // With these braces, the program will block and wait for all threads
+ // to finish right at the closing brace of this block, ensuring
+ // "Zig is cool!" is always printed last.
{
// Now we start the first thread, with the number as parameter
const handle = try std.Thread.spawn(.{}, thread_function, .{1});
@@ -102,8 +102,7 @@ pub fn main() !void {
try io.sleep(std.Io.Duration.fromMilliseconds(400), .awake);
std.debug.print("Some weird stuff, after starting the threads.\n", .{});
}
- // After we have left the closed area, we wait until
- // the threads have run through, if this has not yet been the case.
+ // The threads are guaranteed to be finished by the time we reach here.
std.debug.print("Zig is cool!\n", .{});
}