summaryrefslogtreecommitdiffstats
path: root/src/libirecovery.c
diff options
context:
space:
mode:
authorGravatar tihmstar2023-12-14 01:16:00 +0100
committerGravatar Nikias Bassen2025-09-06 20:07:05 +0200
commit5506512dae682f733c55f59d9802a0ff12369822 (patch)
tree399c97b08b59fb74cf300647bb510853974d9737 /src/libirecovery.c
parent7a84cd9f639a1962d5e73118263a1b2fbab52b14 (diff)
downloadlibirecovery-5506512dae682f733c55f59d9802a0ff12369822.tar.gz
libirecovery-5506512dae682f733c55f59d9802a0ff12369822.tar.bz2
IOKit: Fix race condition when trying to delete runloop before it even started
Diffstat (limited to 'src/libirecovery.c')
-rw-r--r--src/libirecovery.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libirecovery.c b/src/libirecovery.c
index 3146e40..a38b55f 100644
--- a/src/libirecovery.c
+++ b/src/libirecovery.c
@@ -3114,6 +3114,7 @@ irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_context_t contex
if (num == 0 && th_event_handler != THREAD_T_NULL && thread_alive(th_event_handler)) {
#ifdef HAVE_IOKIT
if (iokit_runloop) {
+ while (!CFRunLoopIsWaiting(iokit_runloop)) usleep(420);
CFRunLoopStop(iokit_runloop);
iokit_runloop = NULL;
}