Handle is closed error while checking if multiprocessing queue is empty?

I have two processes sharing multiprocessing queue and for one process OSError: handle is closed is thrown for reason that I do not understand. Is there a way to provide this process the same multiprocessing queue that it was sharing with the second process again.

Sharing the whole code is not possible but to give an idea, I have the main process initializing the mpq (multiprocessing queue) and providing the same to process1 and process2. P1 check if the mpq is empty mpq.empty() (empties it if not) and then puts data in mpq and P2 gets data from mpq. After some time when P1 is checking if mpq is empty OSError: handle is closed is thrown.

Try to write the smallest example code that does what you describe.
You will either discover a solution or have code to share here.