11const std = @import ("std" );
22const ps = @import ("polysession" );
3- const net = std .net ;
43const channel = @import ("channel.zig" );
54const StreamChannel = channel .StreamChannel ;
65const 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 },
0 commit comments