[Groonga-commit] groonga/groonga at 16cfa75 [master] alloc: add GRN_FAIL_MALLOC_MAX_COUNT

Back to archive index
Kouhei Sutou null+****@clear*****
Mon Jan 28 17:56:36 JST 2019


Kouhei Sutou	2019-01-28 17:56:36 +0900 (Mon, 28 Jan 2019)

  Revision: 16cfa75c7354814f41fb35390603f36d4a6158d2
  https://github.com/groonga/groonga/commit/16cfa75c7354814f41fb35390603f36d4a6158d2

  Message:
    alloc: add GRN_FAIL_MALLOC_MAX_COUNT

  Modified files:
    lib/alloc.c

  Modified: lib/alloc.c (+15 -0)
===================================================================
--- lib/alloc.c    2019-01-28 17:36:48 +0900 (21dfb0394)
+++ lib/alloc.c    2019-01-28 17:56:36 +0900 (fbd4d427c)
@@ -29,6 +29,7 @@ static grn_bool grn_fail_malloc_location = GRN_FALSE;
 static char *grn_fail_malloc_func = NULL;
 static char *grn_fail_malloc_file = NULL;
 static int grn_fail_malloc_line = 0;
+static int grn_fail_malloc_max_count = -1;
 
 #ifdef USE_EXACT_ALLOC_COUNT
 # define GRN_ADD_ALLOC_COUNT(count) do { \
@@ -109,6 +110,15 @@ grn_alloc_init_from_env(void)
       grn_fail_malloc_line = atoi(grn_fail_malloc_line_env);
     }
   }
+  {
+    char grn_fail_malloc_max_count_env[GRN_ENV_BUFFER_SIZE];
+    grn_getenv("GRN_FAIL_MALLOC_MAX_COUNT",
+               grn_fail_malloc_max_count_env,
+               GRN_ENV_BUFFER_SIZE);
+    if (grn_fail_malloc_max_count_env[0]) {
+      grn_fail_malloc_max_count = atoi(grn_fail_malloc_max_count_env);
+    }
+  }
 }
 
 #ifdef USE_MEMORY_DEBUG
@@ -848,6 +858,11 @@ grn_fail_malloc_should_fail(size_t size,
     return GRN_TRUE;
   }
 
+  if (grn_fail_malloc_max_count >= 0 &&
+      alloc_count >= grn_fail_malloc_max_count) {
+    return GRN_TRUE;
+  }
+
   return GRN_FALSE;
 }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20190128/bc1546b3/attachment.html>


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