- fixed lock of a program when proc echo is called on Android 5.x.x (#7054)

This commit is contained in:
rrenderr 2018-01-10 13:41:29 +02:00 • committed by Andreas Rumpf
commit a1016245cc

View file

@ -406,7 +406,8 @@ proc setStdIoUnbuffered() =
when declared(stdout): when declared(stdout):
proc echoBinSafe(args: openArray[string]) {.compilerProc.} = proc echoBinSafe(args: openArray[string]) {.compilerProc.} =
when not defined(windows): # flockfile deadlocks some versions of Android 5.x.x
when not defined(windows) and not defined(android):
proc flockfile(f: File) {.importc, noDecl.} proc flockfile(f: File) {.importc, noDecl.}
proc funlockfile(f: File) {.importc, noDecl.} proc funlockfile(f: File) {.importc, noDecl.}
flockfile(stdout) flockfile(stdout)
@ -415,7 +416,7 @@ when declared(stdout):
const linefeed = "\n" # can be 1 or more chars const linefeed = "\n" # can be 1 or more chars
discard c_fwrite(linefeed.cstring, linefeed.len, 1, stdout) discard c_fwrite(linefeed.cstring, linefeed.len, 1, stdout)
discard c_fflush(stdout) discard c_fflush(stdout)
when not defined(windows): when not defined(windows) and not defined(android):
funlockfile(stdout) funlockfile(stdout)
{.pop.} {.pop.}