summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominique Leuenberger <dimstar@opensuse.org>2016-07-22 14:21:45 +0200
committerDominique Leuenberger <dimstar@opensuse.org>2016-07-22 14:23:17 +0200
commit8472b3b8ba8c50aedad50d5d8fe8d25cbcb10a30 (patch)
tree9e7eed06bae3583747e2034ef4d4cab34e30ea79
parent8f41d83a3bb03c2a2d6e61f2a79d2546f2d07fff (diff)
downloadlibproxy-git-8472b3b8ba8c50aedad50d5d8fe8d25cbcb10a30.tar.gz
GNOME3: Wait for pxgsettings to vanish while destroying the plugin
This helps avoiding zombie processes in case a caller creates/destroys ProxyFactories for each URL (even though we recommend to have a long-living PF for caching reasons). Originally reported at https://bugzilla.opensuse.org/show_bug.cgi?id=967601
-rw-r--r--libproxy/modules/config_gnome3.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/libproxy/modules/config_gnome3.cpp b/libproxy/modules/config_gnome3.cpp
index 47e7a42..666d639 100644
--- a/libproxy/modules/config_gnome3.cpp
+++ b/libproxy/modules/config_gnome3.cpp
@@ -24,6 +24,7 @@
#include <sys/types.h> // For stat()
#include <sys/stat.h> // For stat()
#include <unistd.h> // For pipe(), close(), vfork(), dup(), execl(), _exit()
+#include <sys/wait.h> // For waitpid()
#include <signal.h> // For kill()
#include "../extension_config.hpp"
@@ -161,6 +162,7 @@ public:
fclose(this->read);
fclose(this->write);
kill(this->pid, SIGTERM);
+ waitpid(this->pid, NULL, 0);
}
void store_response(const string &type,