authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-05-02 20:19:26-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-05-02 20:19:26-04:00
logc186cd187e9b75ee1514a5f3371abeffb36d871a
treebc3f79038f74fa087d67dd44b778cf0fe4ab71ff
parent6f002e724bb4571ff31949a36f2e634e522eb42b

std.atomic - use AtomicOrder.SeqCst for everything

also use less memory for the tests

2 files changed, 5 insertions(+), 5 deletions(-)

std/atomic/queue.zig+3-3
...@@ -31,10 +31,10 @@ pub fn Queue(comptime T: type) type {...@@ -31,10 +31,10 @@ pub fn Queue(comptime T: type) type {
31 }31 }
3232
33 pub fn get(self: &Self) ?&Node {33 pub fn get(self: &Self) ?&Node {
34 var head = @atomicLoad(&Node, &self.head, AtomicOrder.Acquire);34 var head = @atomicLoad(&Node, &self.head, AtomicOrder.SeqCst);
35 while (true) {35 while (true) {
36 const node = head.next ?? return null;36 const node = head.next ?? return null;
37 head = @cmpxchgWeak(&Node, &self.head, head, node, AtomicOrder.Release, AtomicOrder.Acquire) ?? return node;37 head = @cmpxchgWeak(&Node, &self.head, head, node, AtomicOrder.SeqCst, AtomicOrder.SeqCst) ?? return node;
38 }38 }
39 }39 }
40 };40 };
...@@ -56,7 +56,7 @@ test "std.atomic.queue" {...@@ -56,7 +56,7 @@ test "std.atomic.queue" {
56 var direct_allocator = std.heap.DirectAllocator.init();56 var direct_allocator = std.heap.DirectAllocator.init();
57 defer direct_allocator.deinit();57 defer direct_allocator.deinit();
5858
59 var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 64 * 1024 * 1024);59 var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 600 * 1024);
60 defer direct_allocator.allocator.free(plenty_of_memory);60 defer direct_allocator.allocator.free(plenty_of_memory);
6161
62 var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);62 var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);
std/atomic/stack.zig+2-2
...@@ -35,7 +35,7 @@ pub fn Stack(comptime T: type) type {...@@ -35,7 +35,7 @@ pub fn Stack(comptime T: type) type {
35 }35 }
3636
37 pub fn pop(self: &Self) ?&Node {37 pub fn pop(self: &Self) ?&Node {
38 var root = @atomicLoad(?&Node, &self.root, AtomicOrder.Acquire);38 var root = @atomicLoad(?&Node, &self.root, AtomicOrder.SeqCst);
39 while (true) {39 while (true) {
40 root = @cmpxchgWeak(?&Node, &self.root, root, (root ?? return null).next, AtomicOrder.SeqCst, AtomicOrder.SeqCst) ?? return root;40 root = @cmpxchgWeak(?&Node, &self.root, root, (root ?? return null).next, AtomicOrder.SeqCst, AtomicOrder.SeqCst) ?? return root;
41 }41 }
...@@ -63,7 +63,7 @@ test "std.atomic.stack" {...@@ -63,7 +63,7 @@ test "std.atomic.stack" {
63 var direct_allocator = std.heap.DirectAllocator.init();63 var direct_allocator = std.heap.DirectAllocator.init();
64 defer direct_allocator.deinit();64 defer direct_allocator.deinit();
6565
66 var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 64 * 1024 * 1024);66 var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 600 * 1024);
67 defer direct_allocator.allocator.free(plenty_of_memory);67 defer direct_allocator.allocator.free(plenty_of_memory);
6868
69 var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);69 var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);