Mercurial > hg > config
comparison python/multiproc.py @ 596:c5537e841c78
wip
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Wed, 29 Jan 2014 11:12:09 -0800 |
| parents | |
| children | 782dc37492c4 |
comparison
equal
deleted
inserted
replaced
| 595:4b79ee6c8539 | 596:c5537e841c78 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 | |
| 3 """ | |
| 4 multiprocessing/subprocess experiments | |
| 5 """ | |
| 6 | |
| 7 import argparse | |
| 8 import os | |
| 9 import subprocess | |
| 10 import sys | |
| 11 import time | |
| 12 import tempfile | |
| 13 | |
| 14 here = os.path.dirname(os.path.realpath(__file__)) | |
| 15 prog = ["yes"] | |
| 16 timeout = 4. | |
| 17 sleep = 1. | |
| 18 | |
| 19 def main(args=sys.argv[1:]): | |
| 20 | |
| 21 usage = '%prog [options]' | |
| 22 parser = argparse.ArgumentParser(usage=usage, description=__doc__) | |
| 23 parser.add_argument("-t", "--time", dest="time", | |
| 24 type=float, default=1., | |
| 25 help="seconds to run for") | |
| 26 options = parser.parse_args(args) | |
| 27 | |
| 28 output = tempfile.SpooledTemporaryFile() | |
| 29 start = time.time() | |
| 30 proc = subprocess.Popen(prog, stdout=output) | |
| 31 while proc.poll() is None: | |
| 32 if time.time() - start > options.time: | |
| 33 proc.kill() | |
| 34 | |
| 35 # reset tempfile | |
| 36 output.seek(0) | |
| 37 | |
| 38 n_lines = len(output.read().splitlines()) | |
| 39 print ("{}: {} lines".format(subprocess.list2cmdline(prog), n_lines)) | |
| 40 | |
| 41 if __name__ == '__main__': | |
| 42 main() |
