mirror of
https://codeberg.org/ziglings/exercises.git
synced 2025-12-27 16:05:37 +00:00
Merge pull request 'changed 'sleep' to async I/O' (#328) from i323 into main
Reviewed-on: https://codeberg.org/ziglings/exercises/pulls/328
This commit is contained in:
commit
ed9694e557
|
|
@ -106,7 +106,9 @@ pub fn main() !void {
|
|||
|
||||
// After the threads have been started,
|
||||
// they run in parallel and we can still do some work in between.
|
||||
std.posix.nanosleep(4, 0);
|
||||
var io_instance: std.Io.Threaded = .init_single_threaded;
|
||||
const io = io_instance.io();
|
||||
try io.sleep(std.Io.Duration.fromSeconds(4), .awake);
|
||||
std.debug.print("Some weird stuff, after starting the threads.\n", .{});
|
||||
}
|
||||
// After we have left the closed area, we wait until
|
||||
|
|
@ -117,12 +119,14 @@ pub fn main() !void {
|
|||
// This function is started with every thread that we set up.
|
||||
// In our example, we pass the number of the thread as a parameter.
|
||||
fn thread_function(num: usize) !void {
|
||||
std.posix.nanosleep(1 * num, 0);
|
||||
var io_instance: std.Io.Threaded = .init_single_threaded;
|
||||
const io = io_instance.io();
|
||||
try io.sleep(std.Io.Duration.fromSeconds(1 * @as(isize, @intCast(num))), .awake);
|
||||
std.debug.print("thread {d}: {s}\n", .{ num, "started." });
|
||||
|
||||
// This timer simulates the work of the thread.
|
||||
const work_time = 3 * ((5 - num % 3) - 2);
|
||||
std.posix.nanosleep(work_time, 0);
|
||||
try io.sleep(std.Io.Duration.fromSeconds(@intCast(work_time)), .awake);
|
||||
|
||||
std.debug.print("thread {d}: {s}\n", .{ num, "finished." });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
--- exercises/104_threading.zig 2025-11-01 15:54:27.074988112 +0100
|
||||
+++ answers/104_threading.zig 2025-11-01 15:56:12.852195135 +0100
|
||||
--- exercises/104_threading.zig 2025-11-28 14:17:31.552529679 +0100
|
||||
+++ answers/104_threading.zig 2025-11-28 14:15:36.823931851 +0100
|
||||
@@ -97,12 +97,12 @@
|
||||
defer handle.join();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user