diff options
Diffstat (limited to 'contrib/timer-wheel')
| -rw-r--r-- | contrib/timer-wheel/timer-wheel.c | 9 | ||||
| -rw-r--r-- | contrib/timer-wheel/timer-wheel.h | 4 |
2 files changed, 10 insertions, 3 deletions
diff --git a/contrib/timer-wheel/timer-wheel.c b/contrib/timer-wheel/timer-wheel.c index cfbd74e166f..58e0607bf0c 100644 --- a/contrib/timer-wheel/timer-wheel.c +++ b/contrib/timer-wheel/timer-wheel.c @@ -159,7 +159,14 @@ run_timers (struct tvec_base *base) data = timer->data; __gf_tw_detach_timer (timer); - fn (timer, data, call_time); + pthread_spin_unlock(&base->lock); + { + /* It is required to run the actual function outside + of the locked zone, so we don't bother about + locked operations inside that function */ + fn(timer, data, call_time); + } + pthread_spin_lock(&base->lock); } } pthread_spin_unlock (&base->lock); diff --git a/contrib/timer-wheel/timer-wheel.h b/contrib/timer-wheel/timer-wheel.h index baa029ebb30..5637735ec22 100644 --- a/contrib/timer-wheel/timer-wheel.h +++ b/contrib/timer-wheel/timer-wheel.h @@ -17,9 +17,9 @@ #ifndef __TIMER_WHEEL_H #define __TIMER_WHEEL_H -#include "locking.h" +#include "glusterfs/locking.h" -#include "list.h" +#include "glusterfs/list.h" #define TVR_BITS 8 #define TVN_BITS 6 |
