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)
|
self._eventlet_listener = hub.add(hub.READ, self.getsockopt(FD), event)
|
||||||
|
|
||||||
@_wraps(_Socket.close)
|
@_wraps(_Socket.close)
|
||||||
def close(self):
|
def close(self, linger=None):
|
||||||
_Socket.close(self)
|
super(Socket, self).close(linger)
|
||||||
if self._eventlet_listener is not None:
|
if self._eventlet_listener is not None:
|
||||||
hubs.get_hub().remove(self._eventlet_listener)
|
hubs.get_hub().remove(self._eventlet_listener)
|
||||||
self._eventlet_listener = None
|
self._eventlet_listener = None
|
||||||
|
@@ -58,6 +58,16 @@ got '%s'" % (zmq.ZMQError(errno), zmq.ZMQError(e.errno)))
|
|||||||
else:
|
else:
|
||||||
self.fail("Function did not raise any error")
|
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)
|
@skip_unless(zmq_supported)
|
||||||
def test_recv_spawned_before_send_is_non_blocking(self):
|
def test_recv_spawned_before_send_is_non_blocking(self):
|
||||||
req, rep, port = self.create_bound_pair(zmq.PAIR, zmq.PAIR)
|
req, rep, port = self.create_bound_pair(zmq.PAIR, zmq.PAIR)
|
||||||
|
Reference in New Issue
Block a user