Feb-06-2017, 12:49 AM
Apologies for taking so long to get back, but I've been able to reproduce the issue very concisely
I haven't dug deeper into your code, but I'll let you integrate this for now. If you have followup questions I'm still happy to come back to this, though as you know that could take some time....
import Queue q = Queue.LifoQueue() q.put(None) q.join()This will hang. Here is the same thing with more prints
import Queue q = Queue.LifoQueue() print "Putting into the queue" q.put(None) print "About to join()" q.join() print "Done with join()"Basically, the problem is q.join() will block until all the items in the queue have been completed. More specifically, the docs say that task_done() being called is required to resolve items, but when you join on the queue you haven't started any threads yet.
I haven't dug deeper into your code, but I'll let you integrate this for now. If you have followup questions I'm still happy to come back to this, though as you know that could take some time....