summaryrefslogtreecommitdiffstats
path: root/src/device.h
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2013-12-27 01:55:08 +0100
committerGravatar Nikias Bassen2013-12-27 01:55:08 +0100
commit82e5f5764422393eff28aaa8ed35b3ea3db74490 (patch)
tree0f2aafe75e8233e522af5dc58d6e2d498e4bf501 /src/device.h
parenteb9415e18fda0bf394afe8439319a69bbcb196f4 (diff)
downloadusbmuxd-82e5f5764422393eff28aaa8ed35b3ea3db74490.tar.gz
usbmuxd-82e5f5764422393eff28aaa8ed35b3ea3db74490.tar.bz2
preflight: replace idevice_event_* with thread safe implementation
idevice_event_subscribe() calls usbmuxd_subscribe() which will start a thread waiting for device add/remove events. But this implementation is not able to handle more than one "subscription". However the preflight worker will start a thread for _each_ device resulting in a really messed up situation if more than one device is attached at the same time. This fix will use usbmuxd's internal device_remove function calling a preflight callback to make this implementation thread safe.
Diffstat (limited to 'src/device.h')
-rw-r--r--src/device.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/device.h b/src/device.h
index d7c82ca..95d470e 100644
--- a/src/device.h
+++ b/src/device.h
@@ -41,6 +41,7 @@ void device_client_process(int device_id, struct mux_client *client, short event
void device_abort_connect(int device_id, struct mux_client *client);
void device_set_visible(int device_id);
+void device_set_preflight_cb_data(int device_id, void* data);
int device_get_count(int include_hidden);
int device_get_list(int include_hidden, struct device_info *p);