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) {
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;