From: Martin Quinson Date: Mon, 20 Aug 2012 13:31:05 +0000 (+0200) Subject: publicize the existance of Java continuations as an answer to Java scalability X-Git-Tag: v3_9_90~569^2~19^2~9^2~31 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/8f858340e783ca185cb1a8da7dfa6cee58806027 publicize the existance of Java continuations as an answer to Java scalability --- diff --git a/src/smx_context_java.c b/src/smx_context_java.c index 537a484509..9eed4afda5 100644 --- a/src/smx_context_java.c +++ b/src/smx_context_java.c @@ -56,7 +56,10 @@ smx_ctx_java_factory_create_context(xbt_main_func_t code, int argc, void_pfn_smxprocess_t cleanup_func, void* data) { + xbt_ex_t e; + static int thread_amount=0; smx_ctx_java_t context = xbt_new0(s_smx_ctx_java_t, 1); + thread_amount++; /* If the user provided a function for the process then use it otherwise is the context for maestro */ if (code) { @@ -74,7 +77,12 @@ smx_ctx_java_factory_create_context(xbt_main_func_t code, int argc, context->super.argv = argv; context->super.code = code; - context->thread = xbt_os_thread_create(NULL,smx_ctx_java_thread_run,context,NULL); + TRY { + context->thread = xbt_os_thread_create(NULL,smx_ctx_java_thread_run,context,NULL); + } CATCH(e) { + RETHROWF("Impossible to create context #%d. You may want to switch to Java continuations to increase your limits (error: %s)", + thread_amount); + } } else { context->thread = NULL;