From 316b680f5d99da056e1ae89b7a2ca0eabc6244f8 Mon Sep 17 00:00:00 2001 From: Eugene Kabanov Date: Sun, 2 Apr 2017 09:32:54 +0300 Subject: [PATCH] Proper fix for osproc.nim on Android (#5646) --- lib/posix/posix.nim | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/posix/posix.nim b/lib/posix/posix.nim index 0d11bd8536..1ff861534b 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: "".} when defined(android): - proc sigtimedwait*(a1: var Sigset, a2: var SigInfo, - a3: var Timespec, sigsetsize: csize = sizeof(culong)*2): cint {.importc: "__rt_sigtimedwait", header:"".} + proc syscall(arg: clong): clong {.varargs, importc: "syscall", header: "".} + var NR_rt_sigtimedwait {.importc: "__NR_rt_sigtimedwait", header: "".}: clong + var NSIGMAX {.importc: "NSIG", header: "".}: 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: "".} + a3: var Timespec): cint {.importc, header: "".} proc sigwait*(a1: var Sigset, a2: var cint): cint {. importc, header: "".}