Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
make msg_vm_migrate robust (i.e. now SRC or DST can be turned off during the migratio...
[simgrid.git] / src / bindings / java / smx_context_cojava.c
index fd064e8..bfafcb4 100644 (file)
@@ -38,10 +38,10 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(jmsg);
 
 
 static smx_context_t
-smx_ctx_cojava_factory_create_context(xbt_main_func_t code, int argc,
-                                    char **argv,
-                                    void_pfn_smxprocess_t cleanup_func,
-                                    void *data);
+smx_ctx_cojava_factory_create_context(xbt_main_func_t code,
+                                      int argc, char **argv,
+                                      void_pfn_smxprocess_t cleanup_func,
+                                      smx_process_t process);
 
 static void smx_ctx_cojava_free(smx_context_t context);
 static void smx_ctx_cojava_suspend(smx_context_t context);
@@ -63,7 +63,7 @@ void SIMIX_ctx_cojava_factory_init(smx_context_factory_t * factory)
   (*factory)->name = "ctx_cojava_factory";
   //(*factory)->finalize = smx_ctx_base_factory_finalize;
   (*factory)->self = smx_ctx_cojava_self;
-  (*factory)->get_data = smx_ctx_base_get_data;
+  (*factory)->get_process = smx_ctx_base_get_process;
 
   global_env = get_current_thread_env();
 
@@ -114,10 +114,10 @@ smx_context_t smx_ctx_cojava_self(void)
 }
 
 static smx_context_t
-smx_ctx_cojava_factory_create_context(xbt_main_func_t code, int argc,
-                                    char **argv,
-                                    void_pfn_smxprocess_t cleanup_func,
-                                    void* data)
+smx_ctx_cojava_factory_create_context(xbt_main_func_t code,
+                                      int argc, char **argv,
+                                      void_pfn_smxprocess_t cleanup_func,
+                                      smx_process_t process)
 {
        smx_ctx_cojava_t context = xbt_new0(s_smx_ctx_cojava_t, 1);
   /* If the user provided a function for the process then use it
@@ -143,7 +143,7 @@ smx_ctx_cojava_factory_create_context(xbt_main_func_t code, int argc,
        maestro_context = (smx_context_t)context;
   }
   context->bound = 0;
-  context->super.data = data;
+  context->super.process = process;
   return (smx_context_t) context;
 }
 
@@ -180,7 +180,8 @@ void smx_ctx_cojava_stop(smx_context_t context)
   if (context->iwannadie) {
     context->iwannadie = 0;
     JNIEnv *env = get_current_thread_env();
-    jxbt_throw_by_name(env, "org/simgrid/msg/ProcessKilledError", xbt_strdup("Process killed :)"));
+    // TODO it will be nice to have the name of the process to help the end-user to know which Process has been killed
+    jxbt_throw_by_name(env, "org/simgrid/msg/ProcessKilledError", xbt_strdup("Process killed :) (file smx_context_cojava.c)"));
     THROWF(cancel_error, 0, "process cancelled");
   }
   else {