]> AND Public Git Repository - simgrid.git/blobdiff - examples/s4u/mc-bugged1-liveness/s4u-mc-bugged1-liveness.cpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Allow to set a deadline for test.
[simgrid.git] / examples / s4u / mc-bugged1-liveness / s4u-mc-bugged1-liveness.cpp
index 6822f381478131bf92aecdec6b9bbb3dfd8e52f0..935345acde9565866d043bc0e3e8c80bae0ceba0 100644 (file)
@@ -52,7 +52,7 @@ static void coordinator()
 
   simgrid::s4u::Mailbox* mbox = simgrid::s4u::Mailbox::by_name("coordinator");
 
-  while (1) {
+  while (true) {
     m = static_cast<Message*>(mbox->get());
     if (m->kind == Message::Kind::REQUEST) {
       if (CS_used) {
@@ -60,7 +60,7 @@ static void coordinator()
         requests.push(m->return_mailbox);
       } else {
         if (m->return_mailbox->get_name() != "1") {
-          XBT_INFO("CS idle. Grant immediatly");
+          XBT_INFO("CS idle. Grant immediately");
           m->return_mailbox->put(new Message(Message::Kind::GRANT, mbox), 1000);
           CS_used = 1;
         }
@@ -87,11 +87,11 @@ static void coordinator()
 
 static void client(int id)
 {
-  int my_pid = simgrid::s4u::this_actor::get_pid();
+  aid_t my_pid = simgrid::s4u::this_actor::get_pid();
 
   simgrid::s4u::Mailbox* my_mailbox = simgrid::s4u::Mailbox::by_name(std::to_string(id));
 
-  while (1) {
+  while (true) {
     XBT_INFO("Ask the request");
     simgrid::s4u::Mailbox::by_name("coordinator")->put(new Message(Message::Kind::REQUEST, my_mailbox), 1000);
 
@@ -101,7 +101,7 @@ static void client(int id)
       XBT_INFO("Propositions changed : r=1, cs=0");
     }
 
-    const Message* grant = static_cast<Message*>(my_mailbox->get());
+    const auto* grant = static_cast<Message*>(my_mailbox->get());
 
     if ((id == 1) && (grant->kind == Message::Kind::GRANT)) {
       cs = 1;
@@ -117,7 +117,7 @@ static void client(int id)
 
     simgrid::s4u::Mailbox::by_name("coordinator")->put(new Message(Message::Kind::RELEASE, my_mailbox), 1000);
 
-    simgrid::s4u::this_actor::sleep_for(my_pid);
+    simgrid::s4u::this_actor::sleep_for(static_cast<double>(my_pid));
 
     if (id == 1) {
       cs = 0;
@@ -147,7 +147,8 @@ int main(int argc, char* argv[])
 
   e.load_platform(argv[1]);
 
-  simgrid::s4u::Actor::create("coordinator", simgrid::s4u::Host::by_name("Tremblay"), coordinator);
+  simgrid::s4u::Actor::create("coordinator", simgrid::s4u::Host::by_name("Tremblay"), coordinator)
+      ->set_kill_time(argc > 3 ? std::stod(argv[3]) : -1.0);
   if (std::stod(argv[2]) == 0) {
     simgrid::s4u::Actor::create("client", simgrid::s4u::Host::by_name("Boivin"), raw_client, 1);
     simgrid::s4u::Actor::create("client", simgrid::s4u::Host::by_name("Fafard"), raw_client, 2);