aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/client.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/client.c b/src/client.c
index d354c2b..f339bcb 100644
--- a/src/client.c
+++ b/src/client.c
@@ -84,6 +84,8 @@ static DBusMessage *find_proxy_for_url(DBusConnection *conn,
DBusMessage *msg, void *user_data)
{
struct jsrun_data *jsrun;
+ pthread_attr_t attrs;
+ int err;
jsrun = g_try_new0(struct jsrun_data, 1);
if (!jsrun)
@@ -94,7 +96,14 @@ static DBusMessage *find_proxy_for_url(DBusConnection *conn,
jsrun->conn = dbus_connection_ref(conn);
jsrun->msg = dbus_message_ref(msg);
- if (pthread_create(&jsrun->thread, NULL, jsrun_thread, jsrun) != 0) {
+ pthread_attr_init(&attrs);
+ pthread_attr_setdetachstate(&attrs, PTHREAD_CREATE_DETACHED);
+
+ err = pthread_create(&jsrun->thread, &attrs, jsrun_thread, jsrun);
+
+ pthread_attr_destroy(&attrs);
+
+ if (err != 0) {
jsrun_free(jsrun);
return g_dbus_create_error(msg,
PACRUNNER_ERROR_INTERFACE ".Failed",