X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1366b293e8c700b12567e45076cf0e6b7a25478f..0ba0b5da8a4948ab678226c4456f97b9b85a71c6:/src/msg/msg_vm.cpp diff --git a/src/msg/msg_vm.cpp b/src/msg/msg_vm.cpp index 60b752c6b4..7cf836a767 100644 --- a/src/msg/msg_vm.cpp +++ b/src/msg/msg_vm.cpp @@ -183,7 +183,7 @@ void MSG_vm_destroy(msg_vm_t vm) * If the VM cannot be started (because of memory over-provisioning), an exception is generated. */ void MSG_vm_start(msg_vm_t vm) -{ paje_value pj_value; +{ simgrid::simix::kernelImmediate([vm]() { simgrid::vm::VmHostExt::ensureVmExtInstalled(); @@ -215,8 +215,8 @@ void MSG_vm_start(msg_vm_t vm) if (TRACE_msg_vm_is_enabled()) { container_t vm_container = PJ_container_get(vm->getCname()); type_t type = PJ_type_get("MSG_VM_STATE", vm_container->type); - val_t value = pj_value.PJ_value_get_or_new("start", "0 0 1", type); // start is blue - new PushStateEvent(MSG_get_clock(), vm_container, type, value); + value* val = value::get_or_new("start", "0 0 1", type); // start is blue + new PushStateEvent(MSG_get_clock(), vm_container, type, val); } } @@ -755,15 +755,9 @@ void MSG_vm_migrate(msg_vm_t vm, msg_host_t dst_pm) char *pr_rx_name = get_mig_process_rx_name(vm, src_pm, dst_pm); char *pr_tx_name = get_mig_process_tx_name(vm, src_pm, dst_pm); - char** argv = xbt_new(char*, 2); - argv[0] = pr_rx_name; - argv[1] = nullptr; - MSG_process_create_with_arguments(pr_rx_name, migration_rx_fun, ms, dst_pm, 1, argv); + MSG_process_create(pr_rx_name, migration_rx_fun, ms, dst_pm); - argv = xbt_new(char*, 2); - argv[0] = pr_tx_name; - argv[1] = nullptr; - MSG_process_create_with_arguments(pr_tx_name, migration_tx_fun, ms, src_pm, 1, argv); + MSG_process_create(pr_tx_name, migration_tx_fun, ms, src_pm); /* wait until the migration have finished or on error has occurred */ XBT_DEBUG("wait for reception of the final ACK (i.e. migration has been correctly performed"); @@ -806,7 +800,7 @@ void MSG_vm_migrate(msg_vm_t vm, msg_host_t dst_pm) * No suspension cost occurs. */ void MSG_vm_suspend(msg_vm_t vm) -{ paje_value pj_value; +{ smx_actor_t issuer = SIMIX_process_self(); simgrid::simix::kernelImmediate([vm, issuer]() { vm->pimpl_vm_->suspend(issuer); }); @@ -815,8 +809,8 @@ void MSG_vm_suspend(msg_vm_t vm) if (TRACE_msg_vm_is_enabled()) { container_t vm_container = PJ_container_get(vm->getCname()); type_t type = PJ_type_get("MSG_VM_STATE", vm_container->type); - val_t value = pj_value.PJ_value_get_or_new("suspend", "1 0 0", type); // suspend is red - new PushStateEvent(MSG_get_clock(), vm_container, type, value); + value* val = value::get_or_new("suspend", "1 0 0", type); // suspend is red + new PushStateEvent(MSG_get_clock(), vm_container, type, val); } }