+/* Copyright (c) 2012-2014. The SimGrid Team.
+ * All rights reserved. */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
#include "peer.h"
XBT_LOG_NEW_DEFAULT_CATEGORY(msg_peer,
static void peer_forward_msg(peer_t peer, message_t msg)
{
- msg_task_t task = task_message_data_new(peer->me, peer->next, NULL, msg->data_length);
+ msg_task_t task = task_message_data_new(NULL, msg->data_length);
msg_comm_t comm = NULL;
XBT_DEBUG("Sending (isend) from %s into mailbox %s", peer->me, peer->next);
comm = MSG_task_isend(task, peer->next);
p->bytes = 0;
p->pending_recvs = xbt_dynar_new(sizeof(msg_comm_t), NULL);
p->pending_sends = xbt_dynar_new(sizeof(msg_comm_t), NULL);
- p->me = xbt_new(char, HOSTNAME_LENGTH);
/* Set mailbox name: use host number from argv or hostname if no argument given */
if (argc > 1) {
- snprintf(p->me, HOSTNAME_LENGTH, "host%s", argv[1]);
+ p->me = bprintf("host%s", argv[1]);
} else {
- strncpy(p->me, MSG_host_get_name(MSG_host_self()), HOSTNAME_LENGTH);
+ p->me = xbt_strdup(MSG_host_get_name(MSG_host_self()));
}
}
XBT_DEBUG("Waiting for sends to finish before shutdown...");
MSG_comm_waitall(comms, size, PEER_SHUTDOWN_DEADLINE);
+ for (idx = 0; idx < size; idx++) {
+ MSG_comm_destroy(comms[idx]);
+ }
+
xbt_free(comms);
}
xbt_dynar_free(&p->pending_recvs);
xbt_dynar_free(&p->pending_sends);
xbt_free(p->me);
+ xbt_free(p->prev);
+ xbt_free(p->next);
xbt_free(p);
}