Skip to content

Commit

Permalink
added socket.close as DelayedCallback
Browse files Browse the repository at this point in the history
  • Loading branch information
minrk committed Oct 10, 2010
1 parent 4982937 commit 3152854
Showing 1 changed file with 3 additions and 12 deletions.
15 changes: 3 additions & 12 deletions zmq/eventloop/zmqstream.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def __init__(self, socket, io_loop=None):
self._state = zmq.POLLERR
self.io_loop.add_handler(self.socket, self._handle_events, self._state)

shortcircuit some socket methods
# shortcircuit some socket methods
self.bind = self.socket.bind
self.bind_to_random_port = self.socket.bind_to_random_port
self.connect = self.socket.connect
Expand Down Expand Up @@ -219,22 +219,13 @@ def send_pyobj(self, obj, flags=0, protocol=-1, callback=None):
def set_close_callback(self, callback):
"""Call the given callback when the stream is closed."""
self._close_callback = callback

def _cleanup_socket_links(self):
del self.bind
del self.bind_to_random_port
del self.connect
del self.setsockopt
del self.getsockopt
del self.setsockopt_unicode
del self.getsockopt_unicode

def close(self):
"""Close this stream."""
if self.socket is not None:
self.io_loop.remove_handler(self.socket)
# self.socket.close()
self._cleanup_socket_links()
dc = ioloop.DelayedCallback(self.socket.close, 500, self.io_loop)
dc.start()
self.socket = None
if self._close_callback:
self._run_callback(self._close_callback)
Expand Down

0 comments on commit 3152854

Please sign in to comment.