diff options
author | Dominique Leuenberger <dimstar@opensuse.org> | 2016-07-22 14:21:45 +0200 |
---|---|---|
committer | Dominique Leuenberger <dimstar@opensuse.org> | 2016-07-22 14:23:17 +0200 |
commit | 8472b3b8ba8c50aedad50d5d8fe8d25cbcb10a30 (patch) | |
tree | 9e7eed06bae3583747e2034ef4d4cab34e30ea79 | |
parent | 8f41d83a3bb03c2a2d6e61f2a79d2546f2d07fff (diff) | |
download | libproxy-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.cpp | 2 |
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, |