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