* 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();
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);
}
}
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");
* 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); });
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);
}
}