diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2016-06-30 13:56:44 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2016-06-30 13:56:44 +0100 |
commit | e536ea93ec1e865920781f22e04bc39192dc2160 (patch) | |
tree | dafb59d3e90f4c9388f45110130b21094512983d | |
parent | d64d5f996b6146905b665cac9aa02da003ca1346 (diff) | |
parent | 2fe59f1892825ced87c45ae25d9f5795b1d735b6 (diff) |
Merge branch 'dbus-1.10'
-rw-r--r-- | dbus/dbus-spawn.c | 20 | ||||
-rw-r--r-- | test/dbus-daemon.c | 22 |
2 files changed, 33 insertions, 9 deletions
diff --git a/dbus/dbus-spawn.c b/dbus/dbus-spawn.c index afdcd68c..e810ad54 100644 --- a/dbus/dbus-spawn.c +++ b/dbus/dbus-spawn.c @@ -1359,6 +1359,26 @@ _dbus_spawn_async_with_babysitter (DBusBabysitter **sitter_p, } else if (grandchild_pid == 0) { +#ifdef __linux__ + int fd = -1; + +#ifdef O_CLOEXEC + fd = open ("/proc/self/oom_score_adj", O_WRONLY | O_CLOEXEC); +#endif + + if (fd < 0) + { + fd = open ("/proc/self/oom_score_adj", O_WRONLY); + _dbus_fd_set_close_on_exec (fd); + } + + if (fd >= 0) + { + if (write (fd, "0", sizeof (char)) < 0) + _dbus_warn ("writing oom_score_adj error: %s\n", strerror (errno)); + _dbus_close (fd, NULL); + } +#endif /* Go back to ignoring SIGPIPE, since it's evil */ signal (SIGPIPE, SIG_IGN); diff --git a/test/dbus-daemon.c b/test/dbus-daemon.c index 72bcd08c..99d2bc63 100644 --- a/test/dbus-daemon.c +++ b/test/dbus-daemon.c @@ -526,7 +526,18 @@ test_processid (Fixture *f, while (m == NULL) test_main_context_iterate (f->ctx, TRUE); - if (dbus_message_get_args (m, &error, + if (dbus_set_error_from_message (&error, m)) + { + g_assert_cmpstr (error.name, ==, DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN); + +#ifdef PID_SHOULD_WORK + g_error ("Expected pid to be passed, but got %s: %s", + error.name, error.message); +#endif + + dbus_error_free (&error); + } + else if (dbus_message_get_args (m, &error, DBUS_TYPE_UINT32, &pid, DBUS_TYPE_INVALID)) { @@ -545,14 +556,7 @@ test_processid (Fixture *f, } else { - g_assert_cmpstr (error.name, ==, DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN); - -#ifdef PID_SHOULD_WORK - g_error ("Expected pid to be passed, but got %s: %s", - error.name, error.message); -#endif - - dbus_error_free (&error); + g_error ("Unexpected error: %s: %s", error.name, error.message); } } |