Proper fix for osproc.nim on Android (#5646)

This commit is contained in:
Eugene Kabanov
2017-04-02 09:32:54 +03:00
committed by Andreas Rumpf
parent 5fdd03ad4d
commit 316b680f5d

View File

@@ -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>".}