diff options
author | James Meyer <james.meyer@operamail.com> | 2010-11-04 18:06:25 (GMT) |
---|---|---|
committer | James Meyer <james.meyer@operamail.com> | 2010-11-04 18:06:27 (GMT) |
commit | 429f14eea9f4c00ddd8d82f25612213df8d4af84 (patch) | |
tree | d8441dd4ef5ef539c0b263b138d36fb1995c38d8 /build_tools/larch7/larch0/cli/test.py | |
parent | 11ef4af01d6e197a54d0759e688ab5cbd336be4b (diff) | |
download | linhes_dev-429f14eea9f4c00ddd8d82f25612213df8d4af84.zip |
add profiles for larch 7
Diffstat (limited to 'build_tools/larch7/larch0/cli/test.py')
-rwxr-xr-x | build_tools/larch7/larch0/cli/test.py | 42 |
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) + |