如何在SimGrid中正确使用MSG_host_set_property_value()?

时间:2016-07-29 01:51:15

标签: properties platform simgrid

有一位主持人:

<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模拟将正常工作。但我担心这会影响生产力。

1 个答案:

答案 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);