zmq: Socket.close() support linger argument; Thanks to Eric Windisch
https://github.com/eventlet/eventlet/issues/9 Regression. Worked in 0.9.16 because .close() method was not overriden.
This commit is contained in:
@@ -212,8 +212,8 @@ class Socket(_Socket):
|
||||
self._eventlet_listener = hub.add(hub.READ, self.getsockopt(FD), event)
|
||||
|
||||
@_wraps(_Socket.close)
|
||||
def close(self):
|
||||
_Socket.close(self)
|
||||
def close(self, linger=None):
|
||||
super(Socket, self).close(linger)
|
||||
if self._eventlet_listener is not None:
|
||||
hubs.get_hub().remove(self._eventlet_listener)
|
||||
self._eventlet_listener = None
|
||||
|
@@ -58,6 +58,16 @@ got '%s'" % (zmq.ZMQError(errno), zmq.ZMQError(e.errno)))
|
||||
else:
|
||||
self.fail("Function did not raise any error")
|
||||
|
||||
@skip_unless(zmq_supported)
|
||||
def test_close_linger(self):
|
||||
"""Socket.close() must support linger argument.
|
||||
|
||||
https://github.com/eventlet/eventlet/issues/9
|
||||
"""
|
||||
sock1, sock2, _ = self.create_bound_pair(zmq.PAIR, zmq.PAIR)
|
||||
sock1.close(1)
|
||||
sock2.close(linger=0)
|
||||
|
||||
@skip_unless(zmq_supported)
|
||||
def test_recv_spawned_before_send_is_non_blocking(self):
|
||||
req, rep, port = self.create_bound_pair(zmq.PAIR, zmq.PAIR)
|
||||
|
Reference in New Issue
Block a user