Skip to content

Commit 8933fe9

Browse files
committed
Deal with context termination when closing sockets
1 parent ad2c3da commit 8933fe9

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

osbrain/agent.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -333,11 +333,11 @@ def _loopback_reqrep(self, socket, data_to_send):
333333
try:
334334
loopback.connect(socket)
335335
loopback.send_pyobj(data_to_send)
336-
return loopback.recv_pyobj()
337-
except zmq.error.ContextTerminated:
338-
pass
339-
finally:
336+
received = loopback.recv_pyobj()
340337
loopback.close(linger=0)
338+
except zmq.error.ContextTerminated:
339+
return None
340+
return received
341341

342342
def _loopback(self, header, data=None):
343343
"""
@@ -1872,7 +1872,10 @@ def _close_socket(self, socket, linger):
18721872
self._poller.unregister(socket)
18731873

18741874
linger = get_linger(linger)
1875-
socket.close(linger=linger)
1875+
try:
1876+
socket.close(linger=linger)
1877+
except zmq.error.ContextTerminated:
1878+
pass
18761879
address = self._address[socket]
18771880
if address.transport == 'ipc':
18781881
self._cleanup_ipc_socket_files(address)

0 commit comments

Comments
 (0)