Allow a keyboard interrupt to flush the queue

This commit is contained in:
Steven Robertson 2012-01-13 20:57:35 -05:00
parent 348525e036
commit 9a7b5db96e

View File

@ -193,6 +193,7 @@ def run_jobs(r, rev, jobs):
retry.append(i) retry.append(i)
return sidx, gpu_time, ftag, jpg return sidx, gpu_time, ftag, jpg
try:
for sidx, job in enumerate(jobs): for sidx, job in enumerate(jobs):
while len(pending) > QUEUE_LENGTH: while len(pending) > QUEUE_LENGTH:
yield pull(True) yield pull(True)
@ -200,7 +201,10 @@ def run_jobs(r, rev, jobs):
if ret: if ret:
yield ret yield ret
pending[sidx] = job pending[sidx] = job
waiting.append(sidx)
push(sidx, job) push(sidx, job)
except KeyboardInterrupt:
print 'Interrupt received, flushing already-dispatched frames'
while pending: while pending:
yield pull(True) yield pull(True)
@ -229,4 +233,3 @@ if __name__ == "__main__":
work('192.168.1.3') work('192.168.1.3')
else: else:
client(sys.argv[1], sys.argv[2:]) client(sys.argv[1], sys.argv[2:])