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>