Kouhei Sutou
null+****@clear*****
Sat Apr 2 22:57:09 JST 2016
Kouhei Sutou 2016-04-02 22:57:09 +0900 (Sat, 02 Apr 2016) New Revision: 3e837f03659d0272d2da90844f3777c81240af5f https://github.com/groonga/groonga/commit/3e837f03659d0272d2da90844f3777c81240af5f Message: request_timer: remove mutex Multithreading support should be implemented in handler. Modified files: include/groonga/request_timer.h lib/request_timer.c Modified: include/groonga/request_timer.h (+3 -0) =================================================================== --- include/groonga/request_timer.h 2016-04-02 22:45:46 +0900 (7009a59) +++ include/groonga/request_timer.h 2016-04-02 22:57:09 +0900 (145201c) @@ -35,12 +35,15 @@ typedef struct _grn_request_timer { void (*fin_func)(void *user_data); } grn_request_timer; +/* Multithreading unsafe. */ GRN_API void grn_request_timer_set(grn_request_timer *timer); +/* Multithreading safety is depends on grn_request_timer. */ GRN_API void *grn_request_timer_register(grn_ctx *ctx, const char *request_id, unsigned int request_id_size, double timeout); +/* Multithreading safety is depends on grn_request_timer. */ GRN_API void grn_request_timer_unregister(grn_ctx *ctx, void *timer_id); Modified: lib/request_timer.c (+0 -10) =================================================================== --- lib/request_timer.c 2016-04-02 22:45:46 +0900 (9ed7008) +++ lib/request_timer.c 2016-04-02 22:57:09 +0900 (18c1f43) @@ -19,14 +19,11 @@ #include "grn_ctx.h" #include "grn_request_timer.h" -static grn_mutex grn_request_timer_mutex; static grn_request_timer grn_current_request_timer = { 0 }; grn_bool grn_request_timer_init(void) { - MUTEX_INIT(grn_request_timer_mutex); - return GRN_TRUE; } @@ -38,7 +35,6 @@ grn_request_timer_register(grn_ctx *ctx, { void *timer_id = NULL; - MUTEX_LOCK(grn_request_timer_mutex); if (grn_current_request_timer.register_func) { void *user_data = grn_current_request_timer.user_data; timer_id = grn_current_request_timer.register_func(ctx, @@ -47,7 +43,6 @@ grn_request_timer_register(grn_ctx *ctx, timeout, user_data); } - MUTEX_UNLOCK(grn_request_timer_mutex); return timer_id; } @@ -55,18 +50,15 @@ grn_request_timer_register(grn_ctx *ctx, void grn_request_timer_unregister(grn_ctx *ctx, void *timer_id) { - MUTEX_LOCK(grn_request_timer_mutex); if (grn_current_request_timer.unregister_func) { void *user_data = grn_current_request_timer.user_data; grn_current_request_timer.unregister_func(ctx, timer_id, user_data); } - MUTEX_UNLOCK(grn_request_timer_mutex); } void grn_request_timer_set(grn_request_timer *timer) { - MUTEX_LOCK(grn_request_timer_mutex); if (grn_current_request_timer.fin_func) { void *user_data = grn_current_request_timer.user_data; grn_current_request_timer.fin_func(user_data); @@ -76,12 +68,10 @@ grn_request_timer_set(grn_request_timer *timer) } else { memset(&grn_current_request_timer, 0, sizeof(grn_request_timer)); } - MUTEX_UNLOCK(grn_request_timer_mutex); } void grn_request_timer_fin(void) { grn_request_timer_set(NULL); - MUTEX_FIN(grn_request_timer_mutex); } -------------- next part -------------- HTML����������������������������... Télécharger