Sfoglia il codice sorgente

Try sending SIGTERM (KProcess::kill()) before resorting to SIGKILL (KProcess::~KProcess()).

git-svn-id: file:///var/svn/tigccpp/trunk@847 9552661e-59e3-4036-b4f2-dbe53926924f
kevinkofler 18 anni fa
parent
commit
c19f3068ed
1 ha cambiato i file con 11 aggiunte e 1 eliminazioni
  1. 11 1
      ktigcc/assistant.cpp

+ 11 - 1
ktigcc/assistant.cpp

@@ -49,7 +49,11 @@ AssistantClient::~AssistantClient()
                                                      socket->systemError()),
                        "Socket Error");
   }
-  if (procIO) delete procIO;
+  if (procIO) {
+    procIO->kill();
+    usleep(100000);
+    delete procIO;
+  }
   if (socket) delete socket;
 }
 
@@ -60,6 +64,8 @@ void AssistantClient::openAssistant(const QString &page)
     KMessageBox::error(parentWidget,socket->strError(socketStatus,
                                                      socket->systemError()),
                        "Socket Error");
+    procIO->kill();
+    usleep(100000);
     delete procIO;
     procIO=static_cast<KProcIO *>(NULL);
     return;
@@ -67,6 +73,8 @@ void AssistantClient::openAssistant(const QString &page)
   if (socketStatus>=KExtendedSocket::closing) {
     // The old process is not closed yet, but the connection was already lost.
     // So kill the old process now and run a new one.
+    procIO->kill();
+    usleep(100000);
     delete procIO;
     procIO=static_cast<KProcIO *>(NULL);
     delete socket;
@@ -157,6 +165,8 @@ void AssistantClient::procIO_readReady()
                        this,SLOT(procIO_processExited()));
             disconnect(procIO,SIGNAL(readReady(KProcIO*)),
                        this,SLOT(procIO_readReady()));
+            procIO->kill();
+            usleep(100000);
             procIO->deleteLater();
             procIO=static_cast<KProcIO *>(NULL);
             delete socket;