有一位主持人:
<host id="Worker1" speed="1Mf" core="101"/>
此主机上只有一个进程部署:
<process host="Worker1" function="worker"/>
工作人员职能如下:
int worker(int argc, char *argv[])
{
MSG_host_set_property_value(MSG_host_self(), "activeCore", "0", xbt_free_f);
MSG_task_execute(MSG_task_create("kot", 10e6, 0, NULL));
XBT_INFO("I've executed some stuff and changed my value");
MSG_host_set_property_value(MSG_host_self(), "activeCore", "1", xbt_free_f);
return 0;
}
当我第二次使用MSG_host_set_property_value
Segmentation fault
加注时。
如何避免它?
我知道xbt_free_f
中的原因。如果我将其更改为NULL
模拟将正常工作。但我担心这会影响生产力。
答案 0 :(得分:2)
查看您应该编写的examples / msg / platform-properties / platform-properties.c MSG_host_set_property_value(MSG_host_self(),&#34; activeCore&#34;, xbt_strdup(&#34; 0&#34;),xbt_free_f);
和
MSG_host_set_property_value(MSG_host_self(),&#34; activeCore&#34;, xbt_strdup(&#34; 1&#34;),xbt_free_f);