Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
stop using old simcalls in our own code
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 22 Feb 2019 12:15:37 +0000 (13:15 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 22 Feb 2019 12:15:37 +0000 (13:15 +0100)
src/bindings/java/jmsg_process.cpp
src/msg/msg_process.cpp

index 2976e12..c20b3a4 100644 (file)
@@ -74,8 +74,12 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_create(JNIEnv* env, jobject
   jstring jname         = (jstring)env->GetObjectField(jprocess, jprocess_field_Process_name);
   const char* name      = env->GetStringUTFChars(jname, 0);
   simgrid::simix::ActorCode function = [jprocess]() { simgrid::kernel::context::java_main_jprocess(jprocess); };
-  smx_actor_t actor =
-      simcall_process_create(name, function, /*data*/ nullptr, jhost_get_native(env, jhost), /* properties*/ nullptr);
+  smx_actor_t self                   = SIMIX_process_self();
+  sg_host_t host                     = jhost_get_native(env, jhost);
+  smx_actor_t actor                  = simgrid::simix::simcall([name, function, host, self] {
+    return simgrid::kernel::actor::ActorImpl::create(std::move(name), std::move(function), nullptr, host, nullptr, self)
+        .get();
+  });
   MSG_process_yield();
 
   env->ReleaseStringUTFChars(jname, name);
index dd37f44..da46838 100644 (file)
@@ -81,7 +81,12 @@ msg_process_t MSG_process_create_with_environment(const char *name, xbt_main_fun
     props[key] = value;
   xbt_dict_free(&properties);
 
-  smx_actor_t process = simcall_process_create(name, std::move(function), data, host, &props);
+  smx_actor_t self    = SIMIX_process_self();
+  smx_actor_t process = simgrid::simix::simcall([name, function, data, host, &props, self] {
+    return simgrid::kernel::actor::ActorImpl::create(std::move(name), std::move(function), data, host, &props, self)
+        .get();
+  });
+
   for (int i = 0; i != argc; ++i)
     xbt_free(argv[i]);
   xbt_free(argv);