-/* Copyright (c) 2012-2020. The SimGrid Team.
+/* Copyright (c) 2012-2021. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
static void peer_join_chain(peer_t p)
{
- const chain_message_t msg = (chain_message_t)sg_mailbox_get(p->me);
- p->prev = msg->prev_;
- p->next = msg->next_;
- p->total_pieces = msg->num_pieces;
+ chain_message_t msg = (chain_message_t)sg_mailbox_get(p->me);
+ p->prev = msg->prev_;
+ p->next = msg->next_;
+ p->total_pieces = msg->num_pieces;
XBT_DEBUG("Peer %s got a 'BUILD_CHAIN' message (prev: %s / next: %s)", sg_mailbox_get_name(p->me),
p->prev ? sg_mailbox_get_name(p->prev) : NULL, p->next ? sg_mailbox_get_name(p->next) : NULL);
free(msg);
}
-static void peer_forward_file(const peer_t p)
+static void peer_forward_file(peer_t p)
{
void* received;
int done = 0;
size_t nb_pending_recvs = 0;
while (!done) {
- sg_comm_t comm = sg_mailbox_get_async(p->me, &received);
- p->pending_recvs[nb_pending_recvs] = comm;
+ p->pending_recvs[nb_pending_recvs] = sg_mailbox_get_async(p->me, &received);
nb_pending_recvs++;
- int idx = sg_comm_wait_any(p->pending_recvs, nb_pending_recvs);
+ ssize_t idx = sg_comm_wait_any(p->pending_recvs, nb_pending_recvs);
if (idx != -1) {
- comm = p->pending_recvs[idx];
XBT_DEBUG("Peer %s got a 'SEND_DATA' message", sg_mailbox_get_name(p->me));
/* move the last pending comm where the finished one was, and decrement */
p->pending_recvs[idx] = p->pending_recvs[--nb_pending_recvs];
static peer_t peer_init(int argc, char* argv[])
{
- peer_t p = (peer_t)malloc(sizeof(s_peer_t));
+ peer_t p = xbt_malloc(sizeof(s_peer_t));
p->prev = NULL;
p->next = NULL;
p->received_pieces = 0;
p->received_bytes = 0;
- p->pending_recvs = (sg_comm_t*)malloc(sizeof(sg_comm_t) * MAX_PENDING_COMMS);
- p->pending_sends = (sg_comm_t*)malloc(sizeof(sg_comm_t) * MAX_PENDING_COMMS);
+ p->pending_recvs = xbt_malloc(sizeof(sg_comm_t) * MAX_PENDING_COMMS);
+ p->pending_sends = xbt_malloc(sizeof(sg_comm_t) * MAX_PENDING_COMMS);
p->me = sg_mailbox_by_name(sg_host_self_get_name());