aboutsummaryrefslogtreecommitdiff
path: root/lib/std/atomic/queue.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-03-11 18:54:52 -0400
committerGitHub <noreply@github.com>2020-03-11 18:54:52 -0400
commit895f67cc6dfe3ade4b635c4c2168843b022edee7 (patch)
tree78f817084e76780c1b3eaab961657b168736e4d3 /lib/std/atomic/queue.zig
parent571f3ed161455074be5f296b39b24cba554da8e0 (diff)
parent06d2f53ece7328e6beedd5c846a5b25798ba74e3 (diff)
downloadzig-895f67cc6dfe3ade4b635c4c2168843b022edee7.tar.gz
zig-895f67cc6dfe3ade4b635c4c2168843b022edee7.zip
Merge pull request #4710 from ziglang/io-stream-iface
rework I/O stream abstractions
Diffstat (limited to 'lib/std/atomic/queue.zig')
-rw-r--r--lib/std/atomic/queue.zig33
1 files changed, 14 insertions, 19 deletions
diff --git a/lib/std/atomic/queue.zig b/lib/std/atomic/queue.zig
index 1969587f30..1a0f39587e 100644
--- a/lib/std/atomic/queue.zig
+++ b/lib/std/atomic/queue.zig
@@ -104,21 +104,17 @@ pub fn Queue(comptime T: type) type {
}
pub fn dump(self: *Self) void {
- var stderr_file = std.io.getStdErr() catch return;
- const stderr = &stderr_file.outStream().stream;
- const Error = @typeInfo(@TypeOf(stderr)).Pointer.child.Error;
-
- self.dumpToStream(Error, stderr) catch return;
+ self.dumpToStream(std.io.getStdErr().outStream()) catch return;
}
- pub fn dumpToStream(self: *Self, comptime Error: type, stream: *std.io.OutStream(Error)) Error!void {
+ pub fn dumpToStream(self: *Self, stream: var) !void {
const S = struct {
fn dumpRecursive(
- s: *std.io.OutStream(Error),
+ s: var,
optional_node: ?*Node,
indent: usize,
comptime depth: comptime_int,
- ) Error!void {
+ ) !void {
try s.writeByteNTimes(' ', indent);
if (optional_node) |node| {
try s.print("0x{x}={}\n", .{ @ptrToInt(node), node.data });
@@ -326,17 +322,16 @@ test "std.atomic.Queue single-threaded" {
test "std.atomic.Queue dump" {
const mem = std.mem;
- const SliceOutStream = std.io.SliceOutStream;
var buffer: [1024]u8 = undefined;
var expected_buffer: [1024]u8 = undefined;
- var sos = SliceOutStream.init(buffer[0..]);
+ var fbs = std.io.fixedBufferStream(&buffer);
var queue = Queue(i32).init();
// Test empty stream
- sos.reset();
- try queue.dumpToStream(SliceOutStream.Error, &sos.stream);
- expect(mem.eql(u8, buffer[0..sos.pos],
+ fbs.reset();
+ try queue.dumpToStream(fbs.outStream());
+ expect(mem.eql(u8, buffer[0..fbs.pos],
\\head: (null)
\\tail: (null)
\\
@@ -350,8 +345,8 @@ test "std.atomic.Queue dump" {
};
queue.put(&node_0);
- sos.reset();
- try queue.dumpToStream(SliceOutStream.Error, &sos.stream);
+ fbs.reset();
+ try queue.dumpToStream(fbs.outStream());
var expected = try std.fmt.bufPrint(expected_buffer[0..],
\\head: 0x{x}=1
@@ -360,7 +355,7 @@ test "std.atomic.Queue dump" {
\\ (null)
\\
, .{ @ptrToInt(queue.head), @ptrToInt(queue.tail) });
- expect(mem.eql(u8, buffer[0..sos.pos], expected));
+ expect(mem.eql(u8, buffer[0..fbs.pos], expected));
// Test a stream with two elements
var node_1 = Queue(i32).Node{
@@ -370,8 +365,8 @@ test "std.atomic.Queue dump" {
};
queue.put(&node_1);
- sos.reset();
- try queue.dumpToStream(SliceOutStream.Error, &sos.stream);
+ fbs.reset();
+ try queue.dumpToStream(fbs.outStream());
expected = try std.fmt.bufPrint(expected_buffer[0..],
\\head: 0x{x}=1
@@ -381,5 +376,5 @@ test "std.atomic.Queue dump" {
\\ (null)
\\
, .{ @ptrToInt(queue.head), @ptrToInt(queue.head.?.next), @ptrToInt(queue.tail) });
- expect(mem.eql(u8, buffer[0..sos.pos], expected));
+ expect(mem.eql(u8, buffer[0..fbs.pos], expected));
}