summaryrefslogtreecommitdiffstats
path: root/rtkit.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-06-04 01:53:51 +0200
committerLennart Poettering <lennart@poettering.net>2009-06-04 01:53:51 +0200
commit065fe7baaa263b8140acd6f1ff1c816af9e02d0d (patch)
treea6aad3e1b929903a2e8f1b41365a633ccf99fcc3 /rtkit.c
parentf4dd55fa9fcf2b4a018793a2bfe3fe42e9dbc663 (diff)
when thread == 0 is passed, fill in gettid()
Diffstat (limited to 'rtkit.c')
-rw-r--r--rtkit.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/rtkit.c b/rtkit.c
index 67a44f7..893edde 100644
--- a/rtkit.c
+++ b/rtkit.c
@@ -24,11 +24,20 @@
SOFTWARE.
***/
+#define _GNU_SOURCE
+
#include <string.h>
#include <errno.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/syscall.h>
#include "rtkit.h"
+static pid_t _gettid(void) {
+ return syscall(SYS_gettid);
+}
+
static int translate_error(const char *name) {
if (strcmp(name, DBUS_ERROR_NO_MEMORY) == 0)
return -ENOMEM;
@@ -51,6 +60,9 @@ int rtkit_make_realtime(DBusConnection *connection, pid_t thread, int priority)
dbus_error_init(&error);
+ if (thread == 0)
+ thread = _gettid();
+
if (!(m = dbus_message_new_method_call(
RTKIT_SERVICE_NAME,
RTKIT_OBJECT_PATH,
@@ -105,6 +117,9 @@ int rtkit_make_high_priority(DBusConnection *connection, pid_t thread, int nice_
dbus_error_init(&error);
+ if (thread == 0)
+ thread = _gettid();
+
if (!(m = dbus_message_new_method_call(
RTKIT_SERVICE_NAME,
RTKIT_OBJECT_PATH,