[Groonga-commit] groonga/groonga at 71e8a6d [master] request-canceler: just set ctx->rc for canceling

Zurück zum Archiv-Index

Kouhei Sutou null+****@clear*****
Mon Dec 8 11:51:16 JST 2014


Kouhei Sutou	2014-12-08 11:51:16 +0900 (Mon, 08 Dec 2014)

  New Revision: 71e8a6d34e7805b1d1f9dd275733d529e0919b8e
  https://github.com/groonga/groonga/commit/71e8a6d34e7805b1d1f9dd275733d529e0919b8e

  Message:
    request-canceler: just set ctx->rc for canceling
    
    Error message and logging are done at unregistering the request.

  Modified files:
    lib/request_canceler.c

  Modified: lib/request_canceler.c (+10 -4)
===================================================================
--- lib/request_canceler.c    2014-12-05 20:41:03 +0900 (42a852d)
+++ lib/request_canceler.c    2014-12-08 11:51:16 +0900 (866292f)
@@ -83,6 +83,12 @@ grn_request_canceler_unregister(grn_ctx *ctx,
     grn_hash_delete(&grn_gctx, entries, request_id, size, NULL);
   }
   MUTEX_UNLOCK(grn_the_request_canceler->mutex);
+
+  if (ctx->rc == GRN_INTERRUPTED_FUNCTION_CALL) {
+    ERRSET(ctx, GRN_LOG_NOTICE, ctx->rc,
+           "[request-canceler] a request is canceled: <%.*s>",
+           size, request_id);
+  }
 }
 
 grn_bool
@@ -95,10 +101,10 @@ grn_request_canceler_cancel(const char *request_id, unsigned int size)
     void *value;
     if (grn_hash_get(&grn_gctx, entries, request_id, size, &value)) {
       grn_request_canceler_entry *entry = value;
-      ERRSET(entry->ctx, GRN_LOG_NOTICE, GRN_INTERRUPTED_FUNCTION_CALL,
-             "[request-canceler] cancel request: <%.*s>",
-             size, request_id);
-      canceled = GRN_TRUE;
+      if (entry->ctx->rc == GRN_SUCCESS) {
+        entry->ctx->rc = GRN_INTERRUPTED_FUNCTION_CALL;
+        canceled = GRN_TRUE;
+      }
     }
   }
   MUTEX_UNLOCK(grn_the_request_canceler->mutex);
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Zurück zum Archiv-Index