/* thread-specific storage for the worker's context */
thread_local SwappedContext* SwappedContext::worker_context_ = nullptr;
-SwappedContextFactory::SwappedContextFactory() : ContextFactory()
-{
- parmap_ = nullptr; // will be created lazily with the right parameters if needed (ie, in parallel)
-}
-
SwappedContext::SwappedContext(std::function<void()>&& code, smx_actor_t actor, SwappedContextFactory* factory)
: Context(std::move(code), actor), factory_(factory)
{
class SwappedContextFactory : public ContextFactory {
friend SwappedContext; // Reads whether we are in parallel mode
public:
- SwappedContextFactory();
+ SwappedContextFactory() = default;
SwappedContextFactory(const SwappedContextFactory&) = delete;
SwappedContextFactory& operator=(const SwappedContextFactory&) = delete;
void run_all() override;
unsigned long process_index_ = 0; // next actor to execute
SwappedContext* maestro_context_ = nullptr; // save maestro's context
- /* For the parallel execution */
- std::unique_ptr<simgrid::xbt::Parmap<smx_actor_t>> parmap_;
+ /* For the parallel execution, will be created lazily with the right parameters if needed (ie, in parallel) */
+ std::unique_ptr<simgrid::xbt::Parmap<smx_actor_t>> parmap_{nullptr};
};
class SwappedContext : public Context {