mirror of
https://github.com/nim-lang/Nim.git
synced 2026-07-22 00:41:28 +00:00
Fix POSIX signal(3) binding's type signature; remove bsd_signal (#24400)
POSIX signal has an identical definition to ISO C signal: https://pubs.opengroup.org/onlinepubs/9799919799/functions/signal.html ```c void (*signal(int sig, void (*func)(int)))(int); /* more readably restated by glibc as */ typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); ``` However, std/posix had omitted the function's return value; this fixes that. To prevent breaking every single line of code ever that touched this binding (including mine...), I've also made it discardable. Additionally, I have noticed that bsd_signal's type signature is wrong - it should have been identical to signal. But bsd_signal was already removed in POSIX 2008, and sigaction is the recommended, portable POSIX signal interface. So I just deleted the bsd_signal binding. Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
This commit is contained in:
@@ -783,8 +783,6 @@ const
|
||||
proc getrusage*(who: cint, rusage: ptr Rusage): cint
|
||||
{.importc, header: "<sys/resource.h>", discardable.}
|
||||
|
||||
proc bsd_signal*(a1: cint, a2: proc (x: pointer) {.noconv.}) {.
|
||||
importc, header: "<signal.h>".}
|
||||
proc kill*(a1: Pid, a2: cint): cint {.importc, header: "<signal.h>", sideEffect.}
|
||||
proc killpg*(a1: Pid, a2: cint): cint {.importc, header: "<signal.h>", sideEffect.}
|
||||
proc pthread_kill*(a1: Pthread, a2: cint): cint {.importc, header: "<signal.h>".}
|
||||
@@ -806,8 +804,8 @@ proc sighold*(a1: cint): cint {.importc, header: "<signal.h>".}
|
||||
proc sigignore*(a1: cint): cint {.importc, header: "<signal.h>".}
|
||||
proc siginterrupt*(a1, a2: cint): cint {.importc, header: "<signal.h>".}
|
||||
proc sigismember*(a1: var Sigset, a2: cint): cint {.importc, header: "<signal.h>".}
|
||||
proc signal*(a1: cint, a2: Sighandler) {.
|
||||
importc, header: "<signal.h>".}
|
||||
proc signal*(a1: cint, a2: Sighandler): Sighandler {.
|
||||
importc, discardable, header: "<signal.h>".}
|
||||
proc sigpause*(a1: cint): cint {.importc, header: "<signal.h>".}
|
||||
proc sigpending*(a1: var Sigset): cint {.importc, header: "<signal.h>".}
|
||||
proc sigprocmask*(a1: cint, a2, a3: var Sigset): cint {.
|
||||
|
||||
Reference in New Issue
Block a user