green.zmq: pyzmq 13.x compatibility
Fixes 'Socket has no such option: _EVENTLET_SEND_EVENT' errors
This commit is contained in:

committed by
Sergey Shepelev

parent
b87ed20e8c
commit
0d692abb51
@@ -13,6 +13,15 @@ slurp_properties(__zmq__, globals(), ignore=__patched__)
|
||||
|
||||
from collections import deque
|
||||
|
||||
try:
|
||||
# alias XREQ/XREP to DEALER/ROUTER if available
|
||||
if not hasattr(__zmq__, 'XREQ'):
|
||||
XREQ = DEALER
|
||||
if not hasattr(__zmq__, 'XREP'):
|
||||
XREP = ROUTER
|
||||
except NameError:
|
||||
pass
|
||||
|
||||
|
||||
class LockReleaseError(Exception):
|
||||
pass
|
||||
@@ -196,10 +205,10 @@ class Socket(_Socket):
|
||||
def __init__(self, context, socket_type):
|
||||
super(Socket, self).__init__(context, socket_type)
|
||||
|
||||
self._eventlet_send_event = _BlockedThread()
|
||||
self._eventlet_recv_event = _BlockedThread()
|
||||
self._eventlet_send_lock = _QueueLock()
|
||||
self._eventlet_recv_lock = _QueueLock()
|
||||
self.__dict__['_eventlet_send_event'] = _BlockedThread()
|
||||
self.__dict__['_eventlet_recv_event'] = _BlockedThread()
|
||||
self.__dict__['_eventlet_send_lock'] = _QueueLock()
|
||||
self.__dict__['_eventlet_recv_lock'] = _QueueLock()
|
||||
|
||||
def event(fd):
|
||||
# Some events arrived at the zmq socket. This may mean
|
||||
@@ -214,14 +223,14 @@ class Socket(_Socket):
|
||||
_Socket_getsockopt(self, EVENTS)
|
||||
|
||||
hub = hubs.get_hub()
|
||||
self._eventlet_listener = hub.add(hub.READ, self.getsockopt(FD), event)
|
||||
self.__dict__['_eventlet_listener'] = hub.add(hub.READ, self.getsockopt(FD), event)
|
||||
|
||||
@_wraps(_Socket.close)
|
||||
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
|
||||
self.__dict__['_eventlet_listener'] = None
|
||||
# wake any blocked threads
|
||||
self._eventlet_send_event.wake()
|
||||
self._eventlet_recv_event.wake()
|
||||
|
Reference in New Issue
Block a user