diff options
Diffstat (limited to 'libmultipath/uevent.c')
-rw-r--r-- | libmultipath/uevent.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libmultipath/uevent.c b/libmultipath/uevent.c index f18c20b..d8f3647 100644 --- a/libmultipath/uevent.c +++ b/libmultipath/uevent.c @@ -52,6 +52,12 @@ pthread_mutex_t uevc_lock, *uevc_lockp = &uevc_lock; pthread_cond_t uev_cond, *uev_condp = &uev_cond; uev_trigger *my_uev_trigger; void * my_trigger_data; +int servicing_uev; + +int is_uevent_busy(void) +{ + return (uevqhp != NULL || servicing_uev); +} static struct uevent * alloc_uevent (void) { @@ -96,7 +102,9 @@ uevq_thread(void * et) while (1) { pthread_mutex_lock(uevc_lockp); + servicing_uev = 0; pthread_cond_wait(uev_condp, uevc_lockp); + servicing_uev = 1; pthread_mutex_unlock(uevc_lockp); service_uevq(); |