[lvm-devel] master - dmeventd: wake up timer when setting new timeout
Zdenek Kabelac
zkabelac at fedoraproject.org
Thu Oct 22 21:33:49 UTC 2015
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=941c6354dbf783da17851be7e38f243334a4acd6
Commit: 941c6354dbf783da17851be7e38f243334a4acd6
Parent: 02eb000f5145aa60578b4591053bff9a797e64cc
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Thu Oct 22 12:37:18 2015 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Thu Oct 22 22:34:29 2015 +0200
dmeventd: wake up timer when setting new timeout
---
daemons/dmeventd/dmeventd.c | 15 ++++++++++++---
1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/daemons/dmeventd/dmeventd.c b/daemons/dmeventd/dmeventd.c
index 885aa9d..bbdee82 100644
--- a/daemons/dmeventd/dmeventd.c
+++ b/daemons/dmeventd/dmeventd.c
@@ -1274,11 +1274,20 @@ static int _set_timeout(struct message_data *message_data)
struct thread_status *thread;
_lock_mutex();
- if ((thread = _lookup_thread_status(message_data)))
- thread->timeout = message_data->timeout_secs;
+ thread = _lookup_thread_status(message_data);
_unlock_mutex();
- return thread ? 0 : -ENODEV;
+ if (!thread)
+ return -ENODEV;
+
+ /* Lets reprogram timer */
+ pthread_mutex_lock(&_timeout_mutex);
+ thread->timeout = message_data->timeout_secs;
+ thread->next_time = 0;
+ pthread_cond_signal(&_timeout_cond);
+ pthread_mutex_unlock(&_timeout_mutex);
+
+ return 0;
}
static int _get_timeout(struct message_data *message_data)
More information about the lvm-devel
mailing list