Browse Source

Disable ipc-debug globally if IPC_DEBUG_FILE env var not present

Christoph Stelz 3 months ago
parent
commit
06f9c7c4e1
1 changed files with 12 additions and 5 deletions
  1. 12 5
      src/ipc_debug.cpp

+ 12 - 5
src/ipc_debug.cpp

@@ -17,6 +17,7 @@
 
 #include <ipc_debug.h>
 
+bool debug_ipc_disabled = true;
 bool debug_ipc_is_root = false;
 FILE *debug_ipc_file = nullptr;
 
@@ -33,6 +34,10 @@ constexpr size_t INITIAL_BUFFER_SIZE = 5 * 1024 * 1024; // 5 MiB
 void print_backtrace();
 
 void debug_ipc_init() {
+    const char *root_env = std::getenv("IPC_DEBUG_ROOT");
+    const char *file_env = std::getenv("IPC_DEBUG_FILE");
+    debug_ipc_disabled = file_env == nullptr;
+
     int mpi_initialized;
     MPI_Initialized(&mpi_initialized);
     if (mpi_initialized) {
@@ -41,8 +46,6 @@ void debug_ipc_init() {
     }
 
     if (rank == 0) {
-        const char *root_env = std::getenv("IPC_DEBUG_ROOT");
-        const char *file_env = std::getenv("IPC_DEBUG_FILE");
         
         if (file_env == nullptr) {
             return;
@@ -82,7 +85,7 @@ void endless_loop() {
 
 template<typename T>
 void debug_ipc_assert_equal(T value) {
-    if (debug_ipc_file == nullptr) {
+    if (debug_ipc_file == nullptr || debug_ipc_disabled) {
         return;
     }
 
@@ -122,7 +125,7 @@ void debug_ipc_assert_equal(T value) {
 
 template<typename T>
 void debug_ipc_assert_equal_vector(std::vector<T> value) {
-    if (debug_ipc_file == nullptr) {
+    if (debug_ipc_file == nullptr || debug_ipc_disabled) {
         return;
     }
 
@@ -181,7 +184,7 @@ void debug_ipc_assert_equal_int64(int64_t value) {
 
 void debug_ipc_assert_equal_array(void *value, size_t size) {
     static_assert(sizeof(char) == 1);
-    if (debug_ipc_file == nullptr) {
+    if (debug_ipc_file == nullptr || debug_ipc_disabled) {
         return;
     }
     debug_ipc_assert_equal(size); // Make sure arrays are the same size
@@ -255,6 +258,10 @@ void debug_ipc_mpi_set_data_distribution(int start_index) {
 
 
 void debug_ipc_assert_equal_mpi_double_array(double *array, size_t array_length) {
+    if (debug_ipc_disabled) {
+        return;
+    }
+
     std::vector<int> recv_counts(cluster_size);
     std::vector<int> displacements(cluster_size);
     int local_array_length = static_cast<int>(array_length);