[Groonga-commit] groonga/groonga at f1fc612 [master] groonga-http: stop to quit canceled ctx

Back to archive index

Kouhei Sutou null+****@clear*****
Sun Apr 3 00:49:05 JST 2016


Kouhei Sutou	2016-04-03 00:49:05 +0900 (Sun, 03 Apr 2016)

  New Revision: f1fc612832916cbfde69520469e5e7554e3ffa66
  https://github.com/groonga/groonga/commit/f1fc612832916cbfde69520469e5e7554e3ffa66

  Message:
    groonga-http: stop to quit canceled ctx

  Modified files:
    lib/request_canceler.c
    src/groonga.c

  Modified: lib/request_canceler.c (+0 -1)
===================================================================
--- lib/request_canceler.c    2016-04-03 00:48:28 +0900 (09084e9)
+++ lib/request_canceler.c    2016-04-03 00:49:05 +0900 (dade736)
@@ -101,7 +101,6 @@ grn_request_canceler_cancel_entry(grn_request_canceler_entry *entry)
 {
   if (entry->ctx->rc == GRN_SUCCESS) {
     entry->ctx->rc = GRN_CANCEL;
-    entry->ctx->stat = GRN_CTX_QUIT;
     return GRN_TRUE;
   } else {
     return GRN_FALSE;

  Modified: src/groonga.c (+6 -1)
===================================================================
--- src/groonga.c    2016-04-03 00:48:28 +0900 (d5c9033)
+++ src/groonga.c    2016-04-03 00:49:05 +0900 (a209136)
@@ -2157,9 +2157,11 @@ h_worker(void *arg)
   GRN_LOG(&grn_gctx, GRN_LOG_NOTICE, "thread start (%d/%d)",
           n_floating_threads, n_running_threads);
   while (n_running_threads <= max_n_floating_threads &&
-         ctx->stat != GRN_CTX_QUIT &&
          grn_gctx.stat != GRN_CTX_QUIT) {
     grn_obj *msg;
+    if (ctx->rc == GRN_CANCEL) {
+      ctx->rc = GRN_SUCCESS;
+    }
     n_floating_threads++;
     while (!(msg = (grn_obj *)grn_com_queue_deque(&grn_gctx, &ctx_new))) {
       COND_WAIT(q_cond, q_mutex);
@@ -2283,6 +2285,9 @@ g_worker(void *arg)
           case GRN_COM_PROTO_GQTP :
             grn_ctx_send(ctx, GRN_BULK_HEAD(msg), GRN_BULK_VSIZE(msg), header->flags);
             ERRCLR(ctx);
+            if (ctx->rc == GRN_CANCEL) {
+              ctx->rc = GRN_SUCCESS;
+            }
             break;
           default :
             ctx->stat = GRN_CTX_QUIT;
-------------- next part --------------
HTML����������������������������...
Télécharger 



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