mirror of
https://codeberg.org/ziglings/exercises.git
synced 2026-06-08 07:50:00 +00:00
removed unnecessary patches
This commit is contained in:
@@ -1,14 +0,0 @@
|
|||||||
--- exercises/085_async2.zig 2026-04-01 19:22:50.017227542 +0200
|
|
||||||
+++ answers/085_async2.zig 2026-04-01 19:21:57.569158481 +0200
|
|
||||||
@@ -38,9 +38,9 @@
|
|
||||||
|
|
||||||
// Now collect the result. What method on Future gives us
|
|
||||||
// the value, blocking if it isn't ready yet?
|
|
||||||
- const answer = future.???(io);
|
|
||||||
+ const answer = future.await(io);
|
|
||||||
|
|
||||||
- std.debug.print("The answer is: {}\n", .{answer});
|
|
||||||
+ std.debug.print("the answer is: {}\n", .{answer});
|
|
||||||
}
|
|
||||||
|
|
||||||
fn computeAnswer(a: u32, b: u32) u32 {
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
--- exercises/086_async3.zig 2026-04-01 22:51:05.540094851 +0200
|
|
||||||
+++ answers/086_async3.zig 2026-04-01 22:50:44.579669189 +0200
|
|
||||||
@@ -29,12 +29,12 @@
|
|
||||||
const io = init.io;
|
|
||||||
|
|
||||||
// Launch both tasks asynchronously.
|
|
||||||
- var future_a = io.async(slowAdd, .{ 10, 20 });
|
|
||||||
- var future_b = ???(slowMul, .{ 6, 7 });
|
|
||||||
+ var future_a = io.async(slowAdd, .{ 1, 2 });
|
|
||||||
+ var future_b = io.async(slowMul, .{ 6, 7 });
|
|
||||||
|
|
||||||
// Await both results.
|
|
||||||
const sum = future_a.await(io);
|
|
||||||
- const product = future_b.???(io);
|
|
||||||
+ const product = future_b.await(io);
|
|
||||||
|
|
||||||
print("{} + {} = {}\n", .{ 1, 2, sum });
|
|
||||||
print("{} * {} = {}\n", .{ 6, 7, product });
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
--- exercises/087_async4.zig 2026-04-01 23:17:31.066443941 +0200
|
|
||||||
+++ answers/087_async4.zig 2026-04-01 23:17:39.251612131 +0200
|
|
||||||
@@ -38,7 +38,7 @@
|
|
||||||
|
|
||||||
// Wait for all tasks to finish.
|
|
||||||
// What Group method blocks until all tasks complete?
|
|
||||||
- try group.???
|
|
||||||
+ try group.await(io);
|
|
||||||
|
|
||||||
print("All tasks finished!\n", .{});
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
--- exercises/088_async5.zig 2026-04-01 23:40:40.505855238 +0200
|
|
||||||
+++ answers/088_async5.zig 2026-04-01 23:40:10.176236971 +0200
|
|
||||||
@@ -40,7 +40,7 @@
|
|
||||||
|
|
||||||
// We don't want to wait 10 seconds!
|
|
||||||
// Which Future method requests cancellation AND returns the result?
|
|
||||||
- const result = ???;
|
|
||||||
+ const result = future.cancel(io);
|
|
||||||
|
|
||||||
print("Task returned: {}\n", .{result});
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
--- exercises/089_async6.zig 2026-04-02 10:25:34.016616118 +0200
|
|
||||||
+++ answers/089_async6.zig 2026-04-02 10:27:48.827144051 +0200
|
|
||||||
@@ -47,7 +47,7 @@
|
|
||||||
|
|
||||||
// Wait for the first finisher.
|
|
||||||
// What Select method returns the first completed result?
|
|
||||||
- const winner = ???;
|
|
||||||
+ const winner = try sel.await();
|
|
||||||
|
|
||||||
switch (winner) {
|
|
||||||
.hare => |msg| print("Hare: {s}\n", .{msg}),
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
--- exercises/090_async7.zig 2026-04-02 10:36:42.910708919 +0200
|
|
||||||
+++ answers/090_async7.zig 2026-04-02 10:36:51.965884223 +0200
|
|
||||||
@@ -49,8 +49,8 @@
|
|
||||||
for (0..times) |_| {
|
|
||||||
// Acquire the lock before modifying shared state.
|
|
||||||
// What Mutex method blocks until the lock is acquired?
|
|
||||||
- state.mutex.??? catch return;
|
|
||||||
- defer state.mutex.unlock(); // <-- what's missing here?
|
|
||||||
+ state.mutex.lock(io) catch return;
|
|
||||||
+ defer state.mutex.unlock(io);
|
|
||||||
|
|
||||||
state.counter += 1;
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
--- exercises/091_async8.zig 2026-04-02 10:49:27.925721496 +0200
|
|
||||||
+++ answers/091_async8.zig 2026-04-02 10:49:31.694795212 +0200
|
|
||||||
@@ -43,7 +43,7 @@
|
|
||||||
// Send numbers 1 through 10 into the queue.
|
|
||||||
for (1..11) |i| {
|
|
||||||
// What Queue method sends a single element, blocking if full?
|
|
||||||
- queue.???(io, @intCast(i)) catch return;
|
|
||||||
+ queue.putOne(io, @intCast(i)) catch return;
|
|
||||||
}
|
|
||||||
// Signal that we're done sending.
|
|
||||||
queue.close(io);
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
--- exercises/092_async9.zig 2026-04-03 13:44:50.526780809 +0200
|
|
||||||
+++ answers/092_async9.zig 2026-04-03 13:44:54.957870294 +0200
|
|
||||||
@@ -36,7 +36,7 @@
|
|
||||||
// Launch with a guaranteed separate thread.
|
|
||||||
// Which Io method guarantees true concurrency?
|
|
||||||
// (Hint: unlike io.async, this one can fail!)
|
|
||||||
- var future = try io.???(compute, .{io});
|
|
||||||
+ var future = try io.concurrent(compute, .{io});
|
|
||||||
|
|
||||||
print("Main thread continues...\n", .{});
|
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
--- exercises/093_async10.zig 2026-04-03 14:25:16.600025924 +0200
|
|
||||||
+++ answers/093_async10.zig 2026-04-03 14:24:56.192615893 +0200
|
|
||||||
@@ -50,8 +50,8 @@
|
|
||||||
|
|
||||||
// Protect this section from cancellation.
|
|
||||||
// What method swaps the cancel protection state?
|
|
||||||
- const old = io.???(. blocked);
|
|
||||||
- defer _ = io.???(old);
|
|
||||||
+ const old = io.swapCancelProtection(.blocked);
|
|
||||||
+ defer _ = io.swapCancelProtection(old);
|
|
||||||
|
|
||||||
// This sleep will NOT return error.Canceled even though
|
|
||||||
// we get canceled during it — protection is active!
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
--- exercises/095_interfaces.zig 2025-08-15 15:17:57.839348063 +0200
|
|
||||||
+++ answers/095_interfaces.zig 2026-04-03 13:09:13.722917764 +0200
|
|
||||||
@@ -106,7 +106,7 @@
|
|
||||||
for (my_insects) |insect| {
|
|
||||||
// Almost done! We want to print() each insect with a
|
|
||||||
// single method call here.
|
|
||||||
- ???
|
|
||||||
+ insect.print();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user