I've got two Python programs running. Program A connects to program B with the multiprocessing module:
# Connection code in program A
# -----------------------------
import multiprocessing
import multiprocessing.connection
...
connection = multiprocessing.connection.Client(
('localhost', 19191), # <- address of program B
authkey='embeetle'.encode('utf-8') # <- authorization key
)
...
connection.send(send_data)
recv_data = connection.recv()
It works perfectly most of the time. However, sometimes program B is frozen (the details don't matter much, but it usually happens when the GUI from program B spawns a modal window).
While program B is frozen, program A hangs at the following line:
connection = multiprocessing.connection.Client(
('localhost', 19191), # <- address of program B
authkey='embeetle'.encode('utf-8') # <- authorization key
)
It keeps waiting for a response. I would like to put a timeout parameter, but the call to multiprocessing.connection.Client(..)
does not have one.
How can I implement a timeout here?
Notes:
I'm working on a Windows 10
computer with Python 3.7
.
from How do I add a timeout to multiprocessing.connection.Client(..) in Python 3.7?
No comments:
Post a Comment