Skip to content

Commit 79abbcd

Browse files
committed
Use new Io interface
1 parent 9e17aac commit 79abbcd

File tree

2 files changed

+34
-27
lines changed

2 files changed

+34
-27
lines changed

examples/simple.zig

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
const std = @import("std");
22
const ps = @import("polysession");
3-
const net = std.net;
43
const channel = @import("channel.zig");
54
const StreamChannel = channel.StreamChannel;
65
const core = @import("core.zig");
@@ -43,22 +42,27 @@ pub fn main() !void {
4342
}
4443

4544
//Server
46-
const localhost = try net.Address.parseIp("127.0.0.1", 0);
4745

48-
var server = try localhost.listen(.{});
49-
defer server.deinit();
46+
var threaded = std.Io.Threaded.init(gpa);
47+
const io = threaded.io();
48+
49+
const net = std.Io.net;
50+
const localhost = try net.IpAddress.parse("127.0.0.1", 8881);
51+
52+
var server = try localhost.listen(io, .{});
53+
defer server.deinit(io);
5054
//
5155

5256
const S = struct {
53-
fn clientFn(server_address: net.Address, dir: std.fs.Dir) !void {
54-
const socket = try net.tcpConnectToAddress(server_address);
55-
defer socket.close();
57+
fn clientFn(io_: std.Io, server_address: net.IpAddress, dir: std.fs.Dir) !void {
58+
const socket = try server_address.connect(io_, .{ .mode = .stream });
59+
defer socket.close(io_);
5660

5761
var reader_buf: [1024 * 1024 * 2]u8 = undefined;
5862
var writer_buf: [1024 * 1024 * 2]u8 = undefined;
5963

60-
var stream_reader = socket.reader(&reader_buf);
61-
var stream_writer = socket.writer(&writer_buf);
64+
var stream_reader = socket.reader(io_, &reader_buf);
65+
var stream_writer = socket.writer(io_, &writer_buf);
6266

6367
const write_file = try dir.createFile("test_write", .{});
6468
defer write_file.close();
@@ -79,7 +83,7 @@ pub fn main() !void {
7983
true,
8084
.{
8185
.server = StreamChannel{
82-
.reader = stream_reader.interface(),
86+
.reader = &stream_reader.interface,
8387
.writer = &stream_writer.interface,
8488
.log = false,
8589
},
@@ -90,26 +94,26 @@ pub fn main() !void {
9094
}
9195
};
9296

93-
const t = try std.Thread.spawn(.{}, S.clientFn, .{ server.listen_address, tmp_dir });
94-
defer t.join();
97+
var t = try io.concurrent(S.clientFn, .{ io, localhost, tmp_dir });
98+
defer t.await(io) catch unreachable;
9599

96100
//
97101

98-
var client = try server.accept();
99-
defer client.stream.close();
102+
var client = try server.accept(io);
103+
defer client.close(io);
100104

101105
var reader_buf: [1024 * 1024 * 2]u8 = undefined;
102106
var writer_buf: [1024 * 1024 * 2]u8 = undefined;
103107

104-
var stream_reader = client.stream.reader(&reader_buf);
105-
var stream_writer = client.stream.writer(&writer_buf);
108+
var stream_reader = client.reader(io, &reader_buf);
109+
var stream_writer = client.writer(io, &writer_buf);
106110

107111
var file_reader_buf: [1024 * 1024 * 2]u8 = undefined;
108112

109113
const read_file = try tmp_dir.openFile("test_read", .{});
110114
defer read_file.close();
111115

112-
var file_reader = read_file.reader(&file_reader_buf);
116+
var file_reader = read_file.reader(io, &file_reader_buf);
113117

114118
var server_context: ServerContext = .{
115119
.pingpong = .{ .server_counter = 0 },
@@ -124,7 +128,7 @@ pub fn main() !void {
124128
true,
125129
.{
126130
.client = StreamChannel{
127-
.reader = stream_reader.interface(),
131+
.reader = &stream_reader.interface,
128132
.writer = &stream_writer.interface,
129133
.log = false,
130134
},

examples/two_phase_commit_generic.zig

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,18 @@ pub fn main() !void {
6969
}
7070
};
7171

72-
const alice_thread = try std.Thread.spawn(.{}, alice.clientFn, .{&mvar_channel_map});
73-
const bob_thread = try std.Thread.spawn(.{}, bob.clientFn, .{&mvar_channel_map});
74-
const charlie_thread = try std.Thread.spawn(.{}, charlie.clientFn, .{&mvar_channel_map});
75-
const selector_thread = try std.Thread.spawn(.{}, selector.clientFn, .{&mvar_channel_map});
76-
77-
alice_thread.join();
78-
bob_thread.join();
79-
charlie_thread.join();
80-
selector_thread.join();
72+
var threaded = std.Io.Threaded.init(gpa);
73+
const io = threaded.io();
74+
75+
var alice_thread = try io.concurrent(alice.clientFn, .{&mvar_channel_map});
76+
var bob_thread = try io.concurrent(bob.clientFn, .{&mvar_channel_map});
77+
var charlie_thread = try io.concurrent(charlie.clientFn, .{&mvar_channel_map});
78+
var selector_thread = try io.concurrent(selector.clientFn, .{&mvar_channel_map});
79+
80+
try alice_thread.await(io);
81+
try bob_thread.await(io);
82+
try charlie_thread.await(io);
83+
try selector_thread.await(io);
8184
}
8285

8386
//

0 commit comments

Comments
 (0)