#calling flush on socket writer causes a segfault

1 messages · Page 1 of 1 (latest)

magic sail
#
# zig build run
Listening on 127.0.0.1:8080...
Client connected
Segmentation fault at address 0x8230
/home/adyx/opt/zig-files/lib/std/Io/net.zig:1354:41: 0x11dcfe7 in drain (std.zig)
            const n = io.vtable.netWrite(io.userdata, handle, buffered, data, splat) catch |err| {
                                        ^
/home/adyx/opt/zig-files/lib/std/Io/Writer.zig:319:39: 0x1039bf2 in defaultFlush (std.zig)
    while (w.end != 0) _ = try drainFn(w, &.{""}, 1);
                                      ^
/home/adyx/opt/zig-files/lib/std/Io/Writer.zig:313:26: 0x1128c23 in flush (std.zig)
    return w.vtable.flush(w);
                         ^
/home/adyx/probe/websocket_learn/src/main.zig:22:35: 0x11d63b8 in run (main.zig)
        try writer_interface.flush();
                                  ^
/home/adyx/probe/websocket_learn/src/main.zig:29:15: 0x11d6669 in main (main.zig)
    return run(io);
              ^
/home/adyx/opt/zig-files/lib/std/start.zig:716:30: 0x11d702f in callMain (std.zig)
    return wrapMain(root.main(.{
                             ^
/home/adyx/opt/zig-files/lib/std/start.zig:190:5: 0x11d5d41 in _start (std.zig)
    asm volatile (switch (native_arch) {
    ^
cerulean salmon
magic sail
#

main expect !void so i guess its fine

cerulean salmon
#

No

magic sail
#

does not make any difference, I still get the segfault 🥲

#

calling flush on socket writer causes a segfault

#

Got it

var writer_interface = conn_writer.interface;

has to be

var writer_interface = &conn_writer.interface;

I'm stupid 🙃

cerulean salmon
#

Interfaces have to be taken by value, not copied

magic sail
#

Yeah..

jolly harbor