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,14 +193,18 @@ def run_jobs(r, rev, jobs):
retry.append(i) retry.append(i)
return sidx, gpu_time, ftag, jpg return sidx, gpu_time, ftag, jpg
for sidx, job in enumerate(jobs): try:
while len(pending) > QUEUE_LENGTH: for sidx, job in enumerate(jobs):
yield pull(True) while len(pending) > QUEUE_LENGTH:
ret = pull(False) yield pull(True)
if ret: ret = pull(False)
yield ret if ret:
pending[sidx] = job yield ret
push(sidx, job) pending[sidx] = job
waiting.append(sidx)
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:])