Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
try to avoid a false positive on sonar saying that on_exit() is deprecated
authorMartin Quinson <martin.quinson@loria.fr>
Mon, 4 Jun 2018 07:02:33 +0000 (09:02 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Mon, 4 Jun 2018 07:02:33 +0000 (09:02 +0200)
examples/s4u/actor-lifetime/s4u-actor-lifetime.cpp

index a9201ae..6231737 100644 (file)
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Messages specific for this s4u example");
 
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Messages specific for this s4u example");
 
-/* Executed on process termination, to display a message helping to understand the output */
-static void my_onexit(int, void*)
-{
-  XBT_INFO("Exiting now (done sleeping or got killed).");
-}
-
-/* Just sleep until termination */
+/* This actor just sleeps until termination */
 class sleeper {
 
 public:
   explicit sleeper(std::vector<std::string> /*args*/)
   {
 class sleeper {
 
 public:
   explicit sleeper(std::vector<std::string> /*args*/)
   {
-    XBT_INFO("Hello! I go to sleep.");
-    simgrid::s4u::this_actor::on_exit(my_onexit, NULL);
+    simgrid::s4u::this_actor::on_exit(
+        [](int, void*) {
+          /* Executed on process termination, to display a message helping to understand the output */
+          XBT_INFO("Exiting now (done sleeping or got killed).");
+        },
+        nullptr);
 
 
+    XBT_INFO("Hello! I go to sleep.");
     simgrid::s4u::this_actor::sleep_for(10);
   }
   void operator()() { XBT_INFO("Done sleeping."); }
     simgrid::s4u::this_actor::sleep_for(10);
   }
   void operator()() { XBT_INFO("Done sleeping."); }