[Groonga-commit] groonga/groonga [master] [windows] fix lazy critical section initialization.

Back to archive index

null+****@clear***** null+****@clear*****
2012年 2月 28日 (火) 13:35:01 JST


Kouhei Sutou	2012-02-28 13:35:01 +0900 (Tue, 28 Feb 2012)

  New Revision: 562f2c9e17b046c08cfa43c49d193e2a046505bb

  Log:
    [windows] fix lazy critical section initialization.

  Modified files:
    lib/ctx.c

  Modified: lib/ctx.c (+3 -1)
===================================================================
--- lib/ctx.c    2012-02-28 13:30:33 +0900 (b6cd50e)
+++ lib/ctx.c    2012-02-28 13:35:01 +0900 (29e281b)
@@ -420,8 +420,10 @@ grn_ctx_impl_init(grn_ctx *ctx)
   ctx->impl->encoding = ctx->encoding;
   ctx->impl->lifoseg = -1;
   ctx->impl->currseg = -1;
+  CRITICAL_SECTION_INIT(ctx->impl->lock);
   if (!(ctx->impl->values = grn_array_create(ctx, NULL, sizeof(grn_db_obj *),
                                              GRN_ARRAY_TINY))) {
+    CRITICAL_SECTION_FIN(ctx->impl->lock);
     grn_io_anon_unmap(ctx, &mi, IMPL_SIZE);
     ctx->impl = NULL;
     return;
@@ -430,11 +432,11 @@ grn_ctx_impl_init(grn_ctx *ctx)
                                          sizeof(grn_io *),
                                          GRN_OBJ_KEY_VAR_SIZE|GRN_HASH_TINY))) {
     grn_array_close(ctx, ctx->impl->values);
+    CRITICAL_SECTION_FIN(ctx->impl->lock);
     grn_io_anon_unmap(ctx, &mi, IMPL_SIZE);
     ctx->impl = NULL;
     return;
   }
-  CRITICAL_SECTION_INIT(ctx->impl->lock);
   ctx->impl->db = NULL;
 
   ctx->impl->expr_vars = grn_hash_create(ctx, NULL, sizeof(grn_id), sizeof(grn_obj *), 0);




Groonga-commit メーリングリストの案内
Back to archive index