Skip to content

Commit

Permalink
std.atomic - use AtomicOrder.SeqCst for everything
Browse files Browse the repository at this point in the history
also use less memory for the tests
  • Loading branch information
andrewrk committed May 3, 2018
1 parent 6f002e7 commit c186cd1
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
6 changes: 3 additions & 3 deletions std/atomic/queue.zig
Expand Up @@ -31,10 +31,10 @@ pub fn Queue(comptime T: type) type {
}

pub fn get(self: &Self) ?&Node {
var head = @atomicLoad(&Node, &self.head, AtomicOrder.Acquire);
var head = @atomicLoad(&Node, &self.head, AtomicOrder.SeqCst);
while (true) {
const node = head.next ?? return null;
head = @cmpxchgWeak(&Node, &self.head, head, node, AtomicOrder.Release, AtomicOrder.Acquire) ?? return node;
head = @cmpxchgWeak(&Node, &self.head, head, node, AtomicOrder.SeqCst, AtomicOrder.SeqCst) ?? return node;
}
}
};
Expand All @@ -56,7 +56,7 @@ test "std.atomic.queue" {
var direct_allocator = std.heap.DirectAllocator.init();
defer direct_allocator.deinit();

var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 64 * 1024 * 1024);
var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 600 * 1024);
defer direct_allocator.allocator.free(plenty_of_memory);

var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);
Expand Down
4 changes: 2 additions & 2 deletions std/atomic/stack.zig
Expand Up @@ -35,7 +35,7 @@ pub fn Stack(comptime T: type) type {
}

pub fn pop(self: &Self) ?&Node {
var root = @atomicLoad(?&Node, &self.root, AtomicOrder.Acquire);
var root = @atomicLoad(?&Node, &self.root, AtomicOrder.SeqCst);
while (true) {
root = @cmpxchgWeak(?&Node, &self.root, root, (root ?? return null).next, AtomicOrder.SeqCst, AtomicOrder.SeqCst) ?? return root;
}
Expand Down Expand Up @@ -63,7 +63,7 @@ test "std.atomic.stack" {
var direct_allocator = std.heap.DirectAllocator.init();
defer direct_allocator.deinit();

var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 64 * 1024 * 1024);
var plenty_of_memory = try direct_allocator.allocator.alloc(u8, 600 * 1024);
defer direct_allocator.allocator.free(plenty_of_memory);

var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory);
Expand Down

0 comments on commit c186cd1

Please sign in to comment.