[Groonga-commit] groonga/groonga at 3e837f0 [master] request_timer: remove mutex

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index