From fbb28b36b7946b0435997f516988ffb90fd1e144 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Thu, 13 May 2004 06:53:21 +0000 Subject: [PATCH] - Once ts_free_id() will be used, we cannot call ctors for deleted ids when creating new threads. --- TSRM/TSRM.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/TSRM/TSRM.c b/TSRM/TSRM.c index 3369c5e69b..b107dcc543 100644 --- a/TSRM/TSRM.c +++ b/TSRM/TSRM.c @@ -283,9 +283,16 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_ tsrm_new_thread_begin_handler(thread_id, &((*thread_resources_ptr)->storage)); } for (i=0; istorage[i] = (void *) malloc(resource_types_table[i].size); - if (resource_types_table[i].ctor) { - resource_types_table[i].ctor((*thread_resources_ptr)->storage[i], &(*thread_resources_ptr)->storage); +#if MBO_0 + if (resource_types_table[i].done) { + thread_resources_ptr)->storage[i] = NULL; + } else +#endif + { + (*thread_resources_ptr)->storage[i] = (void *) malloc(resource_types_table[i].size); + if (resource_types_table[i].ctor) { + resource_types_table[i].ctor((*thread_resources_ptr)->storage[i], &(*thread_resources_ptr)->storage); + } } } -- 2.50.1