[gnome-shell] ibusManager: Restore the NOFILE limit
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] ibusManager: Restore the NOFILE limit
- Date: Tue, 8 Feb 2022 08:44:38 +0000 (UTC)
commit bafacdf62925dc2688462763a5352dbed1573990
Author: Olivier Fourdan <ofourdan redhat com>
Date: Mon Jan 31 10:40:04 2022 +0100
ibusManager: Restore the NOFILE limit
Use GLib's spawn_async() instead of Gio.SubprocessLauncher() which does
not support the child setup function to start ibus-daemon.
This way we can restore the NOFILE limit prior to run the ibus-daemon.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2117>
js/misc/ibusManager.js | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/js/misc/ibusManager.js b/js/misc/ibusManager.js
index d9a9a9d602..d91342c2a8 100644
--- a/js/misc/ibusManager.js
+++ b/js/misc/ibusManager.js
@@ -70,12 +70,22 @@ var IBusManager = class {
_spawn(extraArgs = []) {
try {
let cmdLine = ['ibus-daemon', '--panel', 'disable', ...extraArgs];
- let launcher = Gio.SubprocessLauncher.new(Gio.SubprocessFlags.NONE);
// Forward the right X11 Display for ibus-x11
let display = GLib.getenv('GNOME_SETUP_DISPLAY');
+ let env = [];
+
if (display)
- launcher.setenv('DISPLAY', display, true);
- launcher.spawnv(cmdLine);
+ env.push('DISPLAY=%s'.format(display));
+ GLib.spawn_async(
+ null, cmdLine, env,
+ GLib.SpawnFlags.SEARCH_PATH,
+ () => {
+ try {
+ global.context.restore_rlimit_nofile();
+ } catch (err) {
+ }
+ }
+ );
} catch (e) {
log(`Failed to launch ibus-daemon: ${e.message}`);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]