#include "simgrid/forward.h"
#include "src/kernel/activity/ActivityImpl.hpp"
+#include <array>
#include <csignal>
#include <functional>
class XBT_PUBLIC ContextFactory {
public:
- explicit ContextFactory() {}
+ explicit ContextFactory() = default;
ContextFactory(const ContextFactory&) = delete;
ContextFactory& operator=(const ContextFactory&) = delete;
virtual ~ContextFactory();
protected:
template <class T, class... Args> T* new_context(Args&&... args)
{
- T* context = new T(std::forward<Args>(args)...);
+ auto* context = new T(std::forward<Args>(args)...);
context->declare_context(sizeof(T));
return context;
}
bool wannadie() const { return iwannadie_; }
void set_wannadie(bool value = true) { iwannadie_ = value; }
- void operator()() { code_(); }
+ void operator()() const { code_(); }
bool has_code() const { return static_cast<bool>(code_); }
- actor::ActorImpl* get_actor() { return this->actor_; }
+ actor::ActorImpl* get_actor() const { return this->actor_; }
// Scheduling methods
virtual void stop();
} // namespace kernel
} // namespace simgrid
-typedef simgrid::kernel::context::ContextFactory *smx_context_factory_t;
-
XBT_PRIVATE void SIMIX_context_mod_init();
XBT_PRIVATE void SIMIX_context_mod_exit();
#ifndef WIN32
-XBT_PUBLIC_DATA unsigned char sigsegv_stack[SIGSTKSZ];
+XBT_PUBLIC_DATA std::array<unsigned char, SIGSTKSZ> sigsegv_stack;
#endif
#endif