[Groonga-commit] groonga/groonga at 80e8292 [master] Extract common server setup code

Back to archive index

Kouhei Sutou null+****@clear*****
Mon May 27 12:13:17 JST 2013


Kouhei Sutou	2013-05-27 12:13:17 +0900 (Mon, 27 May 2013)

  New Revision: 80e8292e3a173aba04fa135def71338057da9787
  https://github.com/groonga/groonga/commit/80e8292e3a173aba04fa135def71338057da9787

  Message:
    Extract common server setup code

  Modified files:
    src/groonga.c

  Modified: src/groonga.c (+26 -28)
===================================================================
--- src/groonga.c    2013-05-27 11:43:20 +0900 (a95d6ff)
+++ src/groonga.c    2013-05-27 12:13:17 +0900 (a164e64)
@@ -557,6 +557,30 @@ run_server(grn_ctx *ctx, grn_obj *db, grn_com_event *ev,
   return exit_code;
 }
 
+static int
+start_service(grn_ctx *ctx, const char *db_path,
+              grn_edge_dispatcher_func dispatcher, grn_handler_func handler)
+{
+  int exit_code = EXIT_SUCCESS;
+  grn_com_event ev;
+  if (!grn_com_event_init(ctx, &ev, MAX_CON, sizeof(grn_com))) {
+    grn_obj *db;
+    db = (newdb || !db_path) ? grn_db_create(ctx, db_path, NULL) : grn_db_open(ctx, db_path);
+    if (db) {
+      exit_code = run_server(ctx, db, &ev, dispatcher, handler);
+      grn_obj_close(ctx, db);
+    } else {
+      fprintf(stderr, "db open failed (%s)\n", db_path);
+      exit_code = EXIT_FAILURE;
+    }
+    grn_com_event_fin(ctx, &ev);
+  } else {
+    fprintf(stderr, "grn_com_event_init failed\n");
+    exit_code = EXIT_FAILURE;
+  }
+  return exit_code;
+}
+
 typedef struct {
   grn_obj body;
   grn_msg *msg;
@@ -1320,7 +1344,6 @@ static int
 h_server(char *path)
 {
   int exit_code = EXIT_FAILURE;
-  grn_com_event ev;
   grn_ctx ctx_, *ctx = &ctx_;
   grn_ctx_init(ctx, 0);
   MUTEX_INIT(q_mutex);
@@ -1342,19 +1365,7 @@ h_server(char *path)
             (long long int)lim.rlim_cur, (long long int)lim.rlim_max);
   }
 #endif /* WIN32 */
-  if (!grn_com_event_init(ctx, &ev, MAX_CON, sizeof(grn_com))) {
-    grn_obj *db;
-    db = (newdb || !path) ? grn_db_create(ctx, path, NULL) : grn_db_open(ctx, path);
-    if (db) {
-      exit_code = run_server(ctx, db, &ev, NULL, h_handler);
-      grn_obj_close(ctx, db);
-    } else {
-      fprintf(stderr, "db open failed (%s)\n", path);
-    }
-    grn_com_event_fin(ctx, &ev);
-  } else {
-    fprintf(stderr, "grn_com_event_init failed\n");
-  }
+  exit_code = start_service(ctx, path, NULL, h_handler);
   grn_ctx_fin(ctx);
   return exit_code;
 }
@@ -1507,7 +1518,6 @@ static int
 g_server(char *path)
 {
   int exit_code = EXIT_FAILURE;
-  grn_com_event ev;
   grn_ctx ctx_, *ctx = &ctx_;
   grn_ctx_init(ctx, 0);
   MUTEX_INIT(q_mutex);
@@ -1534,19 +1544,7 @@ g_server(char *path)
             (long long int)limit.rlim_cur, (long long int)limit.rlim_max);
   }
 #endif /* WIN32 */
-  if (!grn_com_event_init(ctx, &ev, MAX_CON, sizeof(grn_com))) {
-    grn_obj *db;
-    db = (newdb || !path) ? grn_db_create(ctx, path, NULL) : grn_db_open(ctx, path);
-    if (db) {
-      exit_code = run_server(ctx, db, &ev, g_dispatcher, g_handler);
-      grn_obj_close(ctx, db);
-    } else {
-      fprintf(stderr, "db open failed (%s)\n", path);
-    }
-    grn_com_event_fin(ctx, &ev);
-  } else {
-    fprintf(stderr, "grn_com_event_init failed\n");
-  }
+  exit_code = start_service(ctx, path, g_dispatcher, g_handler);
   grn_ctx_fin(ctx);
   return exit_code;
 }
-------------- next part --------------
HTML����������������������������...
Download 



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