#include "src/simix/smx_private.hpp"
#include "src/surf/surf_interface.hpp"
-#include <array>
+#include <vector>
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context);
/* Install or disable alternate signal stack, for SIGSEGV handler. */
int Context::install_sigsegv_stack(stack_t* old_stack, bool enable)
{
- static std::array<unsigned char, SIGSTKSZ> sigsegv_stack;
+ static std::vector<unsigned char> sigsegv_stack;
+ if (sigsegv_stack.size() == 0)
+ sigsegv_stack.resize(SIGSTKSZ);
stack_t stack;
stack.ss_sp = sigsegv_stack.data();
stack.ss_size = sigsegv_stack.size();
std::raise(signum);
}
-std::array<unsigned char, SIGSTKSZ> sigsegv_stack; /* alternate stack for SIGSEGV handler */
-
/**
* Install signal handler for SIGSEGV. Check that nobody has already installed
* its own handler. For example, the Java VM does this.