From 68dfdc715086f511f6b256f87add7763f20df4e8 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Fri, 22 Feb 2019 13:15:37 +0100 Subject: [PATCH] stop using old simcalls in our own code --- src/bindings/java/jmsg_process.cpp | 8 ++++++-- src/msg/msg_process.cpp | 7 ++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/bindings/java/jmsg_process.cpp b/src/bindings/java/jmsg_process.cpp index 2976e12f9b..c20b3a4944 100644 --- a/src/bindings/java/jmsg_process.cpp +++ b/src/bindings/java/jmsg_process.cpp @@ -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); diff --git a/src/msg/msg_process.cpp b/src/msg/msg_process.cpp index dd37f44d0f..da46838777 100644 --- a/src/msg/msg_process.cpp +++ b/src/msg/msg_process.cpp @@ -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); -- 2.20.1