diff options
Diffstat (limited to 'std/atomic/queue.zig')
| -rw-r--r-- | std/atomic/queue.zig | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/std/atomic/queue.zig b/std/atomic/queue.zig index 2aa1d31934..7c850f37ec 100644 --- a/std/atomic/queue.zig +++ b/std/atomic/queue.zig @@ -7,7 +7,7 @@ const assert = std.debug.assert; /// Many producer, many consumer, non-allocating, thread-safe. /// Uses a mutex to protect access. pub fn Queue(comptime T: type) type { - return struct { + return struct.{ head: ?*Node, tail: ?*Node, mutex: std.Mutex, @@ -16,7 +16,7 @@ pub fn Queue(comptime T: type) type { pub const Node = std.LinkedList(T).Node; pub fn init() Self { - return Self{ + return Self.{ .head = null, .tail = null, .mutex = std.Mutex.init(), @@ -104,12 +104,12 @@ pub fn Queue(comptime T: type) type { pub fn dump(self: *Self) void { var stderr_file = std.io.getStdErr() catch return; - const stderr = &std.io.FileOutStream.init(stderr_file).stream; + const stderr = &stderr_file.outStream().stream; self.dumpToStream(stderr) catch return; } - pub fn dumpToStream(self: *Self, stream: var) !void { + pub fn dumpToStream(self: *Self, stream: var) @typeOf(stream).Error!void { const held = self.mutex.acquire(); defer held.release(); @@ -131,7 +131,7 @@ pub fn Queue(comptime T: type) type { }; } -const Context = struct { +const Context = struct.{ allocator: *std.mem.Allocator, queue: *Queue(i32), put_sum: isize, @@ -159,7 +159,7 @@ test "std.atomic.Queue" { var a = &fixed_buffer_allocator.allocator; var queue = Queue(i32).init(); - var context = Context{ + var context = Context.{ .allocator = a, .queue = &queue, .put_sum = 0, @@ -201,9 +201,9 @@ fn startPuts(ctx: *Context) u8 { var put_count: usize = puts_per_thread; var r = std.rand.DefaultPrng.init(0xdeadbeef); while (put_count != 0) : (put_count -= 1) { - std.os.time.sleep(0, 1); // let the os scheduler be our fuzz + std.os.time.sleep(1); // let the os scheduler be our fuzz const x = @bitCast(i32, r.random.scalar(u32)); - const node = ctx.allocator.create(Queue(i32).Node{ + const node = ctx.allocator.create(Queue(i32).Node.{ .prev = undefined, .next = undefined, .data = x, @@ -219,7 +219,7 @@ fn startGets(ctx: *Context) u8 { const last = @atomicLoad(u8, &ctx.puts_done, builtin.AtomicOrder.SeqCst) == 1; while (ctx.queue.get()) |node| { - std.os.time.sleep(0, 1); // let the os scheduler be our fuzz + std.os.time.sleep(1); // let the os scheduler be our fuzz _ = @atomicRmw(isize, &ctx.get_sum, builtin.AtomicRmwOp.Add, node.data, builtin.AtomicOrder.SeqCst); _ = @atomicRmw(usize, &ctx.get_count, builtin.AtomicRmwOp.Add, 1, builtin.AtomicOrder.SeqCst); } @@ -231,14 +231,14 @@ fn startGets(ctx: *Context) u8 { test "std.atomic.Queue single-threaded" { var queue = Queue(i32).init(); - var node_0 = Queue(i32).Node{ + var node_0 = Queue(i32).Node.{ .data = 0, .next = undefined, .prev = undefined, }; queue.put(&node_0); - var node_1 = Queue(i32).Node{ + var node_1 = Queue(i32).Node.{ .data = 1, .next = undefined, .prev = undefined, @@ -247,14 +247,14 @@ test "std.atomic.Queue single-threaded" { assert(queue.get().?.data == 0); - var node_2 = Queue(i32).Node{ + var node_2 = Queue(i32).Node.{ .data = 2, .next = undefined, .prev = undefined, }; queue.put(&node_2); - var node_3 = Queue(i32).Node{ + var node_3 = Queue(i32).Node.{ .data = 3, .next = undefined, .prev = undefined, @@ -265,7 +265,7 @@ test "std.atomic.Queue single-threaded" { assert(queue.get().?.data == 2); - var node_4 = Queue(i32).Node{ + var node_4 = Queue(i32).Node.{ .data = 4, .next = undefined, .prev = undefined, |
