Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2023.
[simgrid.git] / teshsuite / xbt / parallel_log_crashtest / parallel_log_crashtest.cpp
index 0464f26..da10d2b 100644 (file)
@@ -1,25 +1,25 @@
 /* synchro_crashtest -- tries to crash the logging mechanism by doing parallel logs*/
 
-/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2007-2023. 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. */
 
-#include "simgrid/msg.h"
+#include "simgrid/s4u/Engine.hpp"
+#include "xbt/log.h"
+#include <array>
 #include <thread>
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(synchro_crashtest, "Logs of this example");
 
-const int test_amount    = 99; /* Up to 99 to not break the logs (and thus the testing mechanism) */
-const int crasher_amount = 99; /* Up to 99 to not break the logs (and thus the testing mechanism) */
+constexpr int test_amount    = 99; /* Up to 99 to not break the logs (and thus the testing mechanism) */
+constexpr int crasher_amount = 99; /* Up to 99 to not break the logs (and thus the testing mechanism) */
 
-int more_info = 0; /* SET IT TO TRUE TO GET MORE INFO */
+constexpr bool more_info = false; /* SET IT TO TRUE TO GET MORE INFO */
 
 /* Code ran by each thread */
-static void* crasher_thread(void* arg)
+static void crasher_thread(int id)
 {
-  int id = *(int*)arg;
-
   for (int i = 0; i < test_amount; i++) {
     if (more_info)
       XBT_INFO("%03d (%02d|%02d|%02d|%02d|%02d|%02d|%02d|%02d|%02d)", test_amount - i, id, id, id, id, id, id, id, id,
@@ -27,25 +27,22 @@ static void* crasher_thread(void* arg)
     else
       XBT_INFO("XXX (XX|XX|XX|XX|XX|XX|XX|XX|XX)");
   }
-  return NULL;
 }
 
 int main(int argc, char* argv[])
 {
-  MSG_init(&argc, argv);
+  simgrid::s4u::Engine e(&argc, argv);
 
-  int id[crasher_amount];
-  std::thread crashers[crasher_amount];
+  std::array<std::thread, crasher_amount> crashers;
 
   /* spawn threads */
-  for (int i = 0; i < crasher_amount; i++) {
-    id[i]       = i;
-    crashers[i] = std::thread(crasher_thread, &id[i]);
-  }
+  int id = 0;
+  for (std::thread& thr : crashers)
+    thr = std::thread(crasher_thread, id++);
 
   /* wait for them */
-  for (int i = 0; i < crasher_amount; i++)
-    crashers[i].join();
+  for (std::thread& thr : crashers)
+    thr.join();
 
   return 0;
 }