X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8cef00b18f68304c259dcae04a052d8414ad101e..73e97710413bba3ee2ae8baab0537fbd78811016:/teshsuite/s4u/ns3-simultaneous-send-rcv/ns3-simultaneous-send-rcv.cpp diff --git a/teshsuite/s4u/ns3-simultaneous-send-rcv/ns3-simultaneous-send-rcv.cpp b/teshsuite/s4u/ns3-simultaneous-send-rcv/ns3-simultaneous-send-rcv.cpp index b7a4de5481..f84d8a7320 100644 --- a/teshsuite/s4u/ns3-simultaneous-send-rcv/ns3-simultaneous-send-rcv.cpp +++ b/teshsuite/s4u/ns3-simultaneous-send-rcv/ns3-simultaneous-send-rcv.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2019-2021. 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. */ @@ -16,11 +16,9 @@ const int nb_message_to_send = 5; const double sleep_time = 5; const int nb_sender = 100; -int nb_messages_sent = 0; - -simgrid::s4u::Mailbox* box; - static void test_send(){ + simgrid::s4u::Mailbox* box = simgrid::s4u::Mailbox::by_name("test"); + static int nb_messages_sent = 0; for (int nb_message = 0; nb_message < nb_message_to_send; nb_message++) { nb_messages_sent++; XBT_VERB("start sending test #%i", nb_messages_sent); @@ -31,9 +29,11 @@ static void test_send(){ } static void test_receive(){ + simgrid::s4u::Mailbox* box = simgrid::s4u::Mailbox::by_name("test"); for (int nb_message = 0; nb_message < nb_message_to_send * nb_sender; nb_message++) { XBT_VERB("waiting for messages"); - int id = *(int*)(box->get()); + auto ptr = box->get_unique(); + int id = *ptr; XBT_VERB("received messages #%i", id); } XBT_INFO("Done receiving from %d senders, each of them sending %d messages", nb_sender, nb_message_to_send); @@ -43,16 +43,14 @@ static void test_receive(){ int main(int argc, char *argv[]) { simgrid::s4u::Engine e(&argc, argv); - + e.load_platform(argv[1]); - simgrid::s4u::ActorPtr receiver = simgrid::s4u::Actor::create("receiver", e.get_all_hosts()[0], test_receive); - for (int i = 0; i < nb_sender; i++) - simgrid::s4u::Actor::create("sender_" + std::to_string(i), e.get_all_hosts()[i % (e.get_host_count() - 1) + 1], - test_send); + auto hosts = e.get_all_hosts(); - box = simgrid::s4u::Mailbox::by_name("test"); - box->set_receiver(receiver); + simgrid::s4u::Actor::create("receiver", hosts[0], test_receive); + for (int i = 0; i < nb_sender; i++) + simgrid::s4u::Actor::create("sender_" + std::to_string(i), hosts[i % (e.get_host_count() - 1) + 1], test_send); e.run();