@@ -10,53 +10,56 @@ pub fn main() !void {
1010 var gpa_instance = std .heap .DebugAllocator (.{}).init ;
1111 const gpa = gpa_instance .allocator ();
1212
13- var mvar_channel_map : MvarChannelMap = .init ();
13+ var threaded = std .Io .Threaded .init (gpa );
14+ const io = threaded .io ();
15+
16+ var mvar_channel_map : MvarChannelMap = try .init ();
1417 try mvar_channel_map .generate_all_MvarChannel (gpa , 10 );
1518
1619 const alice = struct {
17- fn run (mcm : * MvarChannelMap ) ! void {
20+ fn run (io_ : std.Io , mcm : * MvarChannelMap ) ! void {
1821 var alice_context : AliceContext = .{};
1922 const fill_ptr : []u8 = @ptrCast (& alice_context .xoshiro256 .s );
2023 std .crypto .random .bytes (fill_ptr );
2124
22- try Runner .runProtocol (.alice , false , mcm , curr_id , & alice_context );
25+ try Runner .runProtocol (io_ , .alice , false , mcm , curr_id , & alice_context );
2326 }
2427 };
2528
2629 const bob = struct {
27- fn run (mcm : * MvarChannelMap ) ! void {
30+ fn run (io_ : std.Io , mcm : * MvarChannelMap ) ! void {
2831 var bob_context : BobContext = .{};
2932 const fill_ptr : []u8 = @ptrCast (& bob_context .xoshiro256 .s );
3033 std .crypto .random .bytes (fill_ptr );
3134
32- try Runner .runProtocol (.bob , false , mcm , curr_id , & bob_context );
35+ try Runner .runProtocol (io_ , .bob , false , mcm , curr_id , & bob_context );
3336 }
3437 };
3538
3639 const charlie = struct {
37- fn run (mcm : * MvarChannelMap ) ! void {
40+ fn run (io_ : std.Io , mcm : * MvarChannelMap ) ! void {
3841 var charlie_context : CharlieContext = .{};
3942 const fill_ptr : []u8 = @ptrCast (& charlie_context .xoshiro256 .s );
4043 std .crypto .random .bytes (fill_ptr );
4144
42- try Runner .runProtocol (.charlie , false , mcm , curr_id , & charlie_context );
45+ try Runner .runProtocol (io_ , .charlie , false , mcm , curr_id , & charlie_context );
4346 }
4447 };
4548
4649 const selector = struct {
47- fn run (mcm : * MvarChannelMap ) ! void {
50+ fn run (io_ : std.Io , mcm : * MvarChannelMap ) ! void {
4851 var charlie_context : SelectorContext = .{};
4952 const fill_ptr : []u8 = @ptrCast (& charlie_context .xoshiro256 .s );
5053 std .crypto .random .bytes (fill_ptr );
5154
52- try Runner .runProtocol (.selector , false , mcm , curr_id , & charlie_context );
55+ try Runner .runProtocol (io_ , .selector , false , mcm , curr_id , & charlie_context );
5356 }
5457 };
5558
56- const alice_thread = try std .Thread .spawn (.{}, alice .run , .{& mvar_channel_map });
57- const bob_thread = try std .Thread .spawn (.{}, bob .run , .{& mvar_channel_map });
58- const charlie_thread = try std .Thread .spawn (.{}, charlie .run , .{& mvar_channel_map });
59- const selector_thread = try std .Thread .spawn (.{}, selector .run , .{& mvar_channel_map });
59+ const alice_thread = try std .Thread .spawn (.{}, alice .run , .{ io , & mvar_channel_map });
60+ const bob_thread = try std .Thread .spawn (.{}, bob .run , .{ io , & mvar_channel_map });
61+ const charlie_thread = try std .Thread .spawn (.{}, charlie .run , .{ io , & mvar_channel_map });
62+ const selector_thread = try std .Thread .spawn (.{}, selector .run , .{ io , & mvar_channel_map });
6063
6164 alice_thread .join ();
6265 bob_thread .join ();
0 commit comments