summaryrefslogtreecommitdiffstats
path: root/build_tools/larch7/larch0/cli/test.py
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2010-11-04 18:06:25 (GMT)
committerJames Meyer <james.meyer@operamail.com>2010-11-04 18:06:27 (GMT)
commit429f14eea9f4c00ddd8d82f25612213df8d4af84 (patch)
treed8441dd4ef5ef539c0b263b138d36fb1995c38d8 /build_tools/larch7/larch0/cli/test.py
parent11ef4af01d6e197a54d0759e688ab5cbd336be4b (diff)
downloadlinhes_dev-429f14eea9f4c00ddd8d82f25612213df8d4af84.zip
add profiles for larch 7
Diffstat (limited to 'build_tools/larch7/larch0/cli/test.py')
-rwxr-xr-xbuild_tools/larch7/larch0/cli/test.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/build_tools/larch7/larch0/cli/test.py b/build_tools/larch7/larch0/cli/test.py
new file mode 100755
index 0000000..18e8067
--- /dev/null
+++ b/build_tools/larch7/larch0/cli/test.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+#
+# This is a little script for testing the dispatcher and termination of
+# subprocesses. It spawns several levels of itself, each instance just
+# outputs an incrementing count until it is terminated.
+
+import sys, os, time, signal
+
+try:
+ import json as serialize
+except:
+ import simplejson as serialize
+
+def out(text):
+ sys.stdout.write(serialize.dumps(text) + '\n')
+ sys.stdout.flush()
+
+def sigint(num, frame):
+ """A handler for SIGINT. Tidy up properly and quit.
+ """
+ out("!>INTERRUPTED %d" % level)
+ exit(1)
+signal.signal(signal.SIGINT, sigint)
+
+level = 3
+while level > 0:
+ if os.fork():
+ break
+ time.sleep(1)
+ level -= 1
+
+sys.stderr.write('%d: pid=%d ppid=%d pgrp=%d\n' % (level,
+ os.getpid(), os.getppid(), os.getpgrp()))
+sys.stderr.flush()
+time.sleep(5)
+
+n = 0
+while True:
+ n += 1
+ out('--%d: %04d' % (level, n))
+ time.sleep(4)
+