moving back to depth of 2
+comment
changing link requesting threads to be non-daemonic

According to Python docs, daemonic threads don't halt
program termination and if the program terminates
abruptly, it's possible resources used by the daemonic
theads might not be cleaned up. So, switching to
non-daemonic threads which also requires an external
triggering mechanism to indicate when processing is complete.
Also had to do a non-blocking queue "get" operation.