@@ -112,29 +112,34 @@ def run(self, workspace):
112112 workspace .display_data .dimensions = dimensions
113113
114114 def do_server_handshake (self ):
115+ def cleanup ():
116+ LOGGER .debug ("destroying existing context" )
117+ if self .server_socket :
118+ self .server_socket .close ()
119+ self .server_socket = None
120+ if self .context :
121+ self .context .term ()
122+ self .context .destroy ()
123+
115124 port = str (self .server_port .value )
116125 domain = "localhost"
117126 socket_addr = f"tcp://{ domain } :{ port } "
118127
119128 if self .context :
120- LOGGER .debug ("destroying existing context" )
121- self .context .destroy ()
122- self .server_socket = None
129+ cleanup ()
123130
124131 self .context = zmq .Context ()
125132 self .server_socket = self .context .socket (zmq .PAIR )
126133 self .server_socket .copy_threshold = 0
127-
134+
128135 LOGGER .debug (f"connecting to { socket_addr } " )
129136
130137 c = self .server_socket .connect (socket_addr )
131-
138+
132139 LOGGER .debug (f"setup socket at { c } " )
133-
134- LOGGER .debug ("sending handshake, waiting for acknowledgement" )
135140
136- self . server_socket . send_string ( HELLO )
137-
141+ LOGGER . debug ( "receiving handshake, waiting for acknowledgement" )
142+
138143 poller = zmq .Poller ()
139144 poller .register (self .server_socket , zmq .POLLIN )
140145 while True :
@@ -143,14 +148,20 @@ def do_server_handshake(self):
143148 break
144149 else :
145150 LOGGER .debug ("handshake timeout" )
151+ cleanup ()
146152 return
147153
148- response = self .server_socket .recv_string ()
154+ hello = self .server_socket .recv_string ()
149155
150- if response == ACK :
151- LOGGER .debug (f"received correct response { response } " )
156+ if hello == HELLO :
157+ LOGGER .debug (f"received correct greeting { hello } " )
152158 else :
153- LOGGER .debug (f"received unexpected response { response } " )
159+ LOGGER .debug (f"received unexpected greeting { hello } " )
160+
161+ LOGGER .debug ("acknowledging handshake" )
162+
163+ self .server_socket .send_string (ACK )
164+
154165
155166 def do_server_execute (self , im_data ):
156167 dummy_data = lambda : np .array ([[]])
0 commit comments