summaryrefslogtreecommitdiffstats
path: root/src/preflight.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/preflight.c')
-rw-r--r--src/preflight.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/preflight.c b/src/preflight.c
index c74e49d..f83c8b6 100644
--- a/src/preflight.c
+++ b/src/preflight.c
@@ -26,8 +26,6 @@
#include <unistd.h>
#include <errno.h>
-#include <pthread.h>
-
#include <sys/time.h>
#ifdef HAVE_LIBIMOBILEDEVICE
@@ -42,6 +40,8 @@
#include "conf.h"
#include "log.h"
+#include "common/thread.h"
+
#ifdef HAVE_LIBIMOBILEDEVICE
enum connection_type {
CONNECTION_USBMUXD = 1
@@ -344,18 +344,14 @@ void preflight_worker_device_add(struct device_info* info)
memcpy(infocopy, info, sizeof(struct device_info));
- pthread_t th;
- pthread_attr_t attr;
-
- pthread_attr_init(&attr);
- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-
- int perr = pthread_create(&th, &attr, preflight_worker_handle_device_add, infocopy);
+ thread_t th;
+ int perr = thread_create(&th, preflight_worker_handle_device_add, infocopy);
if (perr != 0) {
free(infocopy);
usbmuxd_log(LL_ERROR, "ERROR: failed to start preflight worker thread for device %s: %s (%d). Invoking client_device_add() directly but things might not work as expected.", info->serial, strerror(perr), perr);
client_device_add(info);
}
+ thread_detach(th);
#else
client_device_add(info);
#endif