- double coef = 0;
- xbt_dynar_t d = xbt_dynar_new(sizeof(msg_comm_t), NULL);
- int i;
- msg_task_t task;
- char mailbox[256];
- char snprintf_buffer[256];
- msg_comm_t comm;
-
- for (i = 0; i < number_of_tasks; i++) {
- if (diff_com == 0)
- coef = 1;
- else
- coef = (i + 1);
-
- snprintf(mailbox,255, "receiver-%ld", (i % receivers_count));
- snprintf(snprintf_buffer,255, "Task_%d", i);
- task = MSG_task_create(snprintf_buffer, task_comp_size, task_comm_size / coef, NULL);
- comm = MSG_task_isend(task, mailbox);
- xbt_dynar_push_as(d, msg_comm_t, comm);
- XBT_INFO("Send to receiver-%ld %s comm_size %f", i % receivers_count, snprintf_buffer, task_comm_size / coef);
+
+ xbt_dynar_t comms = xbt_dynar_new(sizeof(msg_comm_t), NULL);
+ /* First pack the communications in the dynar */
+ for (int i = 0; i < number_of_tasks; i++) {
+ double coef = (diff_com == 0) ? 1 : (i + 1);
+
+ char mailbox[80];
+ char taskname[80];
+ snprintf(mailbox,79, "receiver-%ld", (i % receivers_count));
+ snprintf(taskname,79, "Task_%d", i);
+ msg_task_t task = MSG_task_create(taskname, task_comp_size, task_comm_size / coef, NULL);
+ msg_comm_t comm = MSG_task_isend(task, mailbox);
+ xbt_dynar_push_as(comms, msg_comm_t, comm);
+ XBT_INFO("Send to receiver-%ld %s comm_size %f", i % receivers_count, taskname, task_comm_size / coef);