~mil/mepo-devel

Use OS-independent sigaction after fc6156a833bb v1 PROPOSED

Jan Beich: 1
 Use OS-independent sigaction after fc6156a833bb

 1 files changed, 7 insertions(+), 6 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~mil/mepo-devel/patches/38775/mbox | git am -3
Learn more about email & git

[PATCH] Use OS-independent sigaction after fc6156a833bb Export this patch

ENOSYS terminates the process on FreeBSD. However, Linux sigaction()
has the same syscall number as obsolete vread(), so does nothing.

$ mepo &
$ pkill -USR1 mepo
[...]
User defined signal 1
---
 src/api/bind_signal.zig | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/api/bind_signal.zig b/src/api/bind_signal.zig
index 61af232..504d55a 100644
--- a/src/api/bind_signal.zig
+++ b/src/api/bind_signal.zig
@@ -39,13 +39,14 @@ fn bind_signal(mepo: *Mepo, signo_str: [:0]const u8, expression: []const u8) !vo
    }

    // Register generic signal handler
    if (0 != std.os.linux.sigaction(signal_name, &.{
    const signal_action = std.os.Sigaction{
        .handler = .{ .handler = utilsdl.sdl_push_event_signal },
        .mask = [_]u32{0} ** 32,
        .flags = @as(c_uint, 0),
    }, null)) {
        return error.FailedToSetupSighandler;
    }
        .mask = std.os.empty_sigset,
        .flags = 0,
    };

    std.os.sigaction(signal_name, &signal_action, null)
        catch return error.FailedToSetupSighandler;

    if (mepo.table_signals.get(signal_name)) |heap_str| {
        mepo.allocator.free(heap_str);