ipc: wait for remote process to exit before returning from kill

This commit is contained in:
outfoxxed committed 2026-07-20 19:21:27 -07:00
1 parent 4df562dfb2
commit 025c709e94
3 files changed
+16 -4

No files matched your search

+1
View File
@@ -10,3 +10,4 @@
- Fixed crashes from accessing freed objects laundered through a `ScriptModel`.
- Fixed crashes when a wifi network disappear.
- Fixed unhandled notifications sending `NotificationClosed` out of order.
- Fixed `qs kill` not waiting for the process to exit.
+11 -3
View File
@@ -105,11 +105,19 @@ IpcClient::IpcClient(const QString& path) {
bool IpcClient::isConnected() const { return this->socket.isValid(); }
void IpcClient::waitForConnected() { this->socket.waitForConnected(); }
void IpcClient::waitForDisconnected() { this->socket.waitForDisconnected(); }
void IpcClient::kill() { this->sendMessage(IpcCommand(IpcKillCommand())); }
void IpcClient::waitForDisconnected() {
this->waitingForDisconnect = true;
this->socket.waitForDisconnected();
}
void IpcClient::onError(QLocalSocket::LocalSocketError error) {
void IpcClient::kill() {
this->sendMessage(IpcCommand(IpcKillCommand()));
this->waitForDisconnected();
}
void IpcClient::onError(QLocalSocket::LocalSocketError error) const {
if (this->waitingForDisconnect && error == QLocalSocket::PeerClosedError) return;
qCCritical(logIpc) << "Socket Error" << error;
}
+4 -1
View File
@@ -216,7 +216,10 @@ signals:
void disconnected();
private slots:
static void onError(QLocalSocket::LocalSocketError error);
void onError(QLocalSocket::LocalSocketError error) const;
private:
bool waitingForDisconnect = false;
};
} // namespace qs::ipc