diff options
author | Eugene Kabanov <ka@hardcore.kiev.ua> | 2017-04-02 09:32:54 +0300 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-04-02 08:32:54 +0200 |
commit | 316b680f5d99da056e1ae89b7a2ca0eabc6244f8 (patch) | |
tree | 447705dc89bb2cf33895eb83f5cb26f14ba7d613 /lib | |
parent | 5fdd03ad4d2a9a1f4e7c02aec0ef199edb6242fa (diff) | |
download | Nim-316b680f5d99da056e1ae89b7a2ca0eabc6244f8.tar.gz |
Proper fix for osproc.nim on Android (#5646)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/posix/posix.nim | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/posix/posix.nim b/lib/posix/posix.nim index 0d11bd853..1ff861534 100644 --- a/lib/posix/posix.nim +++ b/lib/posix/posix.nim @@ -2423,11 +2423,15 @@ proc sigset*(a1: int, a2: proc (x: cint) {.noconv.}) {. proc sigsuspend*(a1: var Sigset): cint {.importc, header: "<signal.h>".} when defined(android): - proc sigtimedwait*(a1: var Sigset, a2: var SigInfo, - a3: var Timespec, sigsetsize: csize = sizeof(culong)*2): cint {.importc: "__rt_sigtimedwait", header:"<signal.h>".} + proc syscall(arg: clong): clong {.varargs, importc: "syscall", header: "<unistd.h>".} + var NR_rt_sigtimedwait {.importc: "__NR_rt_sigtimedwait", header: "<sys/syscall.h>".}: clong + var NSIGMAX {.importc: "NSIG", header: "<signal.h>".}: clong + + proc sigtimedwait*(a1: var Sigset, a2: var SigInfo, a3: var Timespec): cint = + result = cint(syscall(NR_rt_sigtimedwait, addr(a1), addr(a2), addr(a3), NSIGMAX div 8)) else: proc sigtimedwait*(a1: var Sigset, a2: var SigInfo, - a3: var Timespec): cint {.importc, header: "<signal.h>".} + a3: var Timespec): cint {.importc, header: "<signal.h>".} proc sigwait*(a1: var Sigset, a2: var cint): cint {. importc, header: "<signal.h>".} |