From 01e1f489ebff5e6044bb90eeaaa26052fdc5fece Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Fri, 19 Apr 2013 19:22:45 +0200 Subject: libusbmuxd: use status variable instead of waiting fixed amount in initialization --- libusbmuxd/libusbmuxd.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libusbmuxd/libusbmuxd.c b/libusbmuxd/libusbmuxd.c index 6721fe6..01d67e0 100644 --- a/libusbmuxd/libusbmuxd.c +++ b/libusbmuxd/libusbmuxd.c @@ -70,6 +70,7 @@ static int libusbmuxd_debug = 0; #define DEBUG(x, y, ...) if (x <= libusbmuxd_debug) fprintf(stderr, (y), __VA_ARGS__); static int libusbmuxd_initialized = 0; +static int first_lookup = 0; static struct collection devices; static int handle_events = 0; @@ -633,6 +634,7 @@ static void *device_monitor(void *data) while (handle_events) { listenfd = usbmuxd_listen(); + first_lookup = 1; if (listenfd < 0) { continue; } @@ -665,8 +667,10 @@ int usbmuxd_init() mutex_unlock(&init_mutex); return res; } - struct timespec ts = {0, 250000000}; - nanosleep(&ts, NULL); + struct timespec ts = {0, 100000000}; + while (!first_lookup) { + nanosleep(&ts, NULL); + } libusbmuxd_initialized = 1; mutex_unlock(&init_mutex); return 0; @@ -684,6 +688,7 @@ int usbmuxd_deinit() thread_join(devmon); } libusbmuxd_initialized = 0; + first_lookup = 0; mutex_unlock(&init_mutex); return 0; } -- cgit v1.1-32-gdbae