about summary refs log tree commit diff stats
path: root/LICENSE
diff options
context:
space:
mode:
Diffstat (limited to 'LICENSE')
0 files changed, 0 insertions, 0 deletions
texitsignal.nim?h=devel&id=0055729755a14020e670d2f564b2f20253ccd28f'>005572975 ^
7ef268274 ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39





























                                                                           


                                                          




                                                
                                              
discard """
  output: '''true
true'''
  targets: "c"
"""

import os, osproc
when not defined(windows):
  import posix

# Checks that the environment is passed correctly in startProcess
# To do that launches a copy of itself with a new environment.

if paramCount() == 0:
  # Parent process

  let p = startProcess(
    getAppFilename(),
    args = @["child"],
    options = {poStdErrToStdOut, poUsePath, poParentStreams}
  )

  echo p.running()

  p.kill()

  when defined(windows):
    # windows kill happens using TerminateProcess(h, 0), so we should get a
    # 0 here
    echo p.waitForExit() == 0
  elif defined(haiku):
    # on Haiku, the program main thread receive SIGKILLTHR
    echo p.waitForExit() == 128 + SIGKILLTHR
  else:
    # on posix (non-windows), kill sends SIGKILL
    echo p.waitForExit() == 128 + SIGKILL

else:
  sleep(5000)  # should get killed before this