#define SIMGRID_KERNEL_CONTEXT_CONTEXT_HPP
#include "simgrid/forward.h"
-#include "src/internal_config.h"
#include "src/kernel/activity/ActivityImpl.hpp"
#include <csignal>
XBT_PUBLIC_DATA char sigsegv_stack[SIGSTKSZ];
#endif
-/* We are using the bottom of the stack to save some information, like the
- * valgrind_stack_id. Define smx_context_usable_stack_size to give the remaining
- * size for the stack. Round its value to a multiple of 16 (asan wants the stacks to be aligned this way). */
-#if HAVE_VALGRIND_H
-#define smx_context_usable_stack_size \
- ((smx_context_stack_size - sizeof(unsigned int)) & ~0xf) /* for valgrind_stack_id */
-#else
-#define smx_context_usable_stack_size (smx_context_stack_size & ~0xf)
-#endif
-
/** @brief Executes all the processes to run (in parallel if possible). */
XBT_PRIVATE void SIMIX_context_runall();
ThreadContext::~ThreadContext()
{
- if (this->thread_) /* If there is a thread (maestro don't have any), wait for its termination */
+ if (this->thread_) { /* Maestro don't have any thread */
thread_->join();
- delete thread_;
+ delete thread_;
+ }
}
void *ThreadContext::wrapper(void *param)
namespace simgrid {
namespace kernel {
namespace context {
+
// The name of this function is currently hardcoded in MC (as string).
// Do not change it without fixing those references as well.
static void smx_ctx_wrapper(int i1, int i2)
#define ASAN_FINISH_SWITCH(fake_stack_save, bottom_old, size_old) (void)0
#endif
+/* We are using the bottom of the stack to save some information, like the
+ * valgrind_stack_id. Define smx_context_usable_stack_size to give the remaining
+ * size for the stack. Round its value to a multiple of 16 (asan wants the stacks to be aligned this way). */
+#if HAVE_VALGRIND_H
+#define smx_context_usable_stack_size \
+ ((smx_context_stack_size - sizeof(unsigned int)) & ~0xf) /* for valgrind_stack_id */
+#else
+#define smx_context_usable_stack_size (smx_context_stack_size & ~0xf)
+#endif
+
#endif