src/eric7/RemoteServer/EricServerDebuggerRequestHandler.py

branch
eric7
changeset 10965
f80b241605c9
parent 10962
b56b76c0221b
child 11000
f8371a2dd08f
equal deleted inserted replaced
10964:3ce89f2d4729 10965:f80b241605c9
163 if method == "ResponseExit": 163 if method == "ResponseExit":
164 for sock in list(self.__connections.values()): 164 for sock in list(self.__connections.values()):
165 if not self._server.isSocketClosed(sock): 165 if not self._server.isSocketClosed(sock):
166 self.__clientSocketDisconnected(sock) 166 self.__clientSocketDisconnected(sock)
167 167
168 if data["params"]["debuggerId"] == self.__mainClientId:
169 self.__mainClientExited()
170
168 def __clientSocketDisconnected(self, sock): 171 def __clientSocketDisconnected(self, sock):
169 """ 172 """
170 Private method handling a socket disconnecting. 173 Private method handling a socket disconnecting.
171 174
172 @param sock reference to the disconnected socket 175 @param sock reference to the disconnected socket
200 self.__pendingConnections.remove(sock) 203 self.__pendingConnections.remove(sock)
201 204
202 with contextlib.suppress(OSError): 205 with contextlib.suppress(OSError):
203 sock.close() 206 sock.close()
204 207
208 if not self.__connections:
209 # no active connections anymore
210 self.__lastClientExited()
211
205 def __mainClientExited(self): 212 def __mainClientExited(self):
206 """ 213 """
207 Private method to handle exiting of the main debug client. 214 Private method to handle exiting of the main debug client.
208 """ 215 """
209 self._server.sendJson( 216 self._server.sendJson(
210 category=EricRequestCategory.Debugger, 217 category=EricRequestCategory.Debugger,
211 reply="MainClientExited", 218 reply="MainClientExited",
212 params={"debugger_id": self.__mainClientId if self.__mainClientId else ""}, 219 params={"debugger_id": self.__mainClientId if self.__mainClientId else ""},
220 )
221
222 def __lastClientExited(self):
223 """
224 Private method to handle exiting of the last debug client.
225 """
226 self._server.sendJson(
227 category=EricRequestCategory.Debugger,
228 reply="LastDebugClientExited",
229 params={},
213 ) 230 )
214 231
215 def shutdownClients(self): 232 def shutdownClients(self):
216 """ 233 """
217 Public method to shut down all connected clients. 234 Public method to shut down all connected clients.

eric ide

mercurial