This is an automated email from the ASF dual-hosted git repository. aconway pushed a commit to branch schedule-zero in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git
commit 9c2371e9628aee40356fbea36e3b53493b0a0853 Author: Alan Conway <[email protected]> AuthorDate: Fri Mar 1 14:42:38 2019 -0500 DISPATCH-1274: Separate qd_timer_t lock from server qd_timer_t was sharing a lock with qd_server_t for historical reasons. Code inspection shows there is no need for the sharing. - timer.c calls qd_server_timeout() which is thread-safe, and no other server functions. - timer calls handlers outside the lock so it doesn't mater what lock is used. --- src/server.c | 2 +- src/timer.c | 5 +++-- src/timer_private.h | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/server.c b/src/server.c index 1863546..760126d 100644 --- a/src/server.c +++ b/src/server.c @@ -1227,7 +1227,7 @@ qd_server_t *qd_server(qd_dispatch_t *qd, int thread_count, const char *containe qd_server->cond = sys_cond(); DEQ_INIT(qd_server->conn_list); - qd_timer_initialize(qd_server->lock); + qd_timer_initialize(); qd_server->pause_requests = 0; qd_server->threads_paused = 0; diff --git a/src/timer.c b/src/timer.c index 0fd87c7..c76f77d 100644 --- a/src/timer.c +++ b/src/timer.c @@ -182,10 +182,10 @@ void qd_timer_cancel(qd_timer_t *timer) //========================================================================= -void qd_timer_initialize(sys_mutex_t *server_lock) +void qd_timer_initialize() { qd_immediate_initialize(); - lock = server_lock; + lock = sys_mutex(); DEQ_INIT(idle_timers); DEQ_INIT(scheduled_timers); time_base = 0; @@ -194,6 +194,7 @@ void qd_timer_initialize(sys_mutex_t *server_lock) void qd_timer_finalize(void) { + sys_mutex_free(lock); lock = 0; qd_immediate_finalize(); } diff --git a/src/timer_private.h b/src/timer_private.h index 263fca5..9f6f1cb 100644 --- a/src/timer_private.h +++ b/src/timer_private.h @@ -36,7 +36,7 @@ struct qd_timer_t { DEQ_DECLARE(qd_timer_t, qd_timer_list_t); -void qd_timer_initialize(sys_mutex_t *server_lock); +void qd_timer_initialize(void); void qd_timer_finalize(void); void qd_timer_visit(); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
