+ master_socket_name = "/tmp/simgrid-mc-" + std::to_string(getpid());
+ master_socket_name.resize(MC_SOCKET_NAME_LEN); // truncate socket name if it's too long
+ master_socket_name.back() = '\0'; // ensure the data are null-terminated
+#ifdef __linux__
+ master_socket_name[0] = '\0'; // abstract socket, automatically removed after close
+#else
+ unlink(master_socket_name.c_str()); // remove possible stale socket before bind
+ atexit([]() {
+ if (not master_socket_name.empty())
+ unlink(master_socket_name.c_str());
+ master_socket_name.clear();
+ });
+#endif
+