Ignore IPC in exception handler. Closes #262.
This commit is contained in:
parent
d558155620
commit
64e43c6e14
@ -498,6 +498,11 @@ class Application(QApplication):
|
||||
log.destroy.exception("Error while getting objects")
|
||||
objects = ""
|
||||
|
||||
try:
|
||||
objreg.get('ipc-server').ignored = True
|
||||
except Exception:
|
||||
log.destroy.exception("Error while ignoring ipc")
|
||||
|
||||
try:
|
||||
self.lastWindowClosed.disconnect(self.shutdown)
|
||||
except TypeError:
|
||||
|
@ -46,6 +46,7 @@ class IPCServer(QObject):
|
||||
"""IPC server to which clients connect to.
|
||||
|
||||
Attributes:
|
||||
ignored: Whether requests are ignored (in exception hook).
|
||||
_timer: A timer to handle timeouts.
|
||||
_server: A QLocalServer to accept new connections.
|
||||
_socket: The QLocalSocket we're currently connected to.
|
||||
@ -54,6 +55,7 @@ class IPCServer(QObject):
|
||||
def __init__(self, parent=None):
|
||||
"""Start the IPC server and listen to commands."""
|
||||
super().__init__(parent)
|
||||
self.ignored = False
|
||||
self._remove_server()
|
||||
self._timer = usertypes.Timer(self, 'ipc-timeout')
|
||||
self._timer.setInterval(READ_TIMEOUT)
|
||||
@ -86,6 +88,8 @@ class IPCServer(QObject):
|
||||
@pyqtSlot()
|
||||
def handle_connection(self):
|
||||
"""Handle a new connection to the server."""
|
||||
if self.ignored:
|
||||
return
|
||||
if self._socket is not None:
|
||||
log.ipc.debug("Got new connection but ignoring it because we're "
|
||||
"still handling another one.")
|
||||
|
Loading…
Reference in New Issue
Block a user