X-Git-Url: https://git.tld-linux.org/?p=TLD.git;a=blobdiff_plain;f=pld-builder.new%2FPLD_Builder%2Floop.py;fp=pld-builder.new%2FPLD_Builder%2Floop.py;h=bc5be9a1bcfe076beab8a9c5f99544280da16fe0;hp=0000000000000000000000000000000000000000;hb=90809c8fec988489786ce00247d9a4150070748b;hpb=ab3934fab858112cd552359b18cb980ea07c310b diff --git a/pld-builder.new/PLD_Builder/loop.py b/pld-builder.new/PLD_Builder/loop.py new file mode 100644 index 0000000..bc5be9a --- /dev/null +++ b/pld-builder.new/PLD_Builder/loop.py @@ -0,0 +1,31 @@ +# vi: encoding=utf-8 ts=8 sts=4 sw=4 et + +import os +import sys +import time + +import wrap + +def run_loop(fnc, secs = 5, max = 60): + def run(): + pid = os.fork() + if pid == 0: + wrap.wrap(fnc) + sys.exit(0) + else: + pid, s = os.waitpid(pid, 0) + if os.WIFEXITED(s): + s = os.WEXITSTATUS(s) + if s != 0: + sys.exit(s) + else: + sys.exit(10) + + start = time.time() + while time.time() - start < max: + last = time.time() + run() + took = time.time() - last + if took < secs: + time.sleep(secs - took) +