1 #include "simgrid/s4u.hpp"
3 XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u tests");
6 int nb_message_to_send = 100;
10 int nb_messages_sent = 0;
12 simgrid::s4u::Mailbox* box;
14 static void test_send(){
18 while(nb_message < nb_message_to_send){
22 int id_message = nb_messages_sent;
23 XBT_INFO("start sending test #%i", id_message);
24 box->put(new int(id_message), payload);
25 XBT_INFO("done sending test #%i", id_message);
26 simgrid::s4u::this_actor::sleep_for(sleep_time);
30 static void test_receive(){
34 while(nb_message < nb_message_to_send * nb_sender){
35 XBT_INFO("waiting for messages");
36 int id = *(int*)(box->get());
38 XBT_INFO("received messages #%i", id);
43 int main(int argc, char *argv[])
45 simgrid::s4u::Engine e(&argc, argv);
47 e.load_platform(argv[1]);
49 for(int i=0;i<nb_sender;i++)
50 simgrid::s4u::Actor::create("sender_"+std::to_string(i), e.get_all_hosts()[i], test_send);
52 simgrid::s4u::ActorPtr receiver = simgrid::s4u::Actor::create("receiver", e.get_all_hosts()[nb_sender+1], test_receive);
54 box = simgrid::s4u::Mailbox::by_name("test");
55 box->set_receiver(receiver);