If you do not clear the queue, I mean that you do not take elements from the queue, the process freezes after a while. Multiprocessor queues are supported by unnamed FIFOs (pipes) on Linux platforms. The maximum size limit for pipes. This means that if the process writing to the handset and no other process reads data from the channel, after a while the recording process will freeze, trying to put more data into the pipe (it can be seen on the internal call of the recording system).
I suspect that you are not getting the item from the queue, so the queue started working after a while, as a result of which subsequent child processes are at an impasse.
Now, if the child process freezes, the parent process can also freeze if it tries to connect (p.join ()) to the child (inside it will call waitpid to join the child process).
source share