- int nhosts = MSG_get_host_number();
- m_host_t* host_list = MSG_get_host_table();
- // fixme: only sort hosts for automatically created deployment
- // fixme: add an option to disable sorting
- std::sort(host_list, host_list + nhosts, m_host_less());
+ using std::placeholders::_1;
+ using std::placeholders::_2;
+
+ xbt_dynar_t host_dynar = MSG_hosts_as_dynar();
+ int nhosts = xbt_dynar_length(host_dynar);
+ msg_host_t* host_list = static_cast<msg_host_t*>(xbt_dynar_to_array(host_dynar));
+ // only sort hosts for automatically created deployment
+ if (opt::auto_depl::enabled)
+ std::sort(host_list, host_list + nhosts,
+ std::bind(std::less<int>(),
+ std::bind(strcmp,
+ std::bind(MSG_host_get_name, _1),
+ std::bind(MSG_host_get_name, _2)), 0));