-RawContext::RawContext(std::function<void()> code, void_pfn_smxprocess_t cleanup, smx_actor_t process,
- SwappedContextFactory* factory)
- : SwappedContext(std::move(code), cleanup, process, factory)
-{
- if (has_code()) {
-#if PTH_STACKGROWTH == -1
- ASAN_ONLY(this->asan_stack_ = static_cast<char*>(this->stack_) + smx_context_usable_stack_size);
-#else
- ASAN_ONLY(this->asan_stack_ = this->stack_);
-#endif
- this->stack_top_ = raw_makecontext(this->stack_, smx_context_usable_stack_size, RawContext::wrapper, this);
- } else {
- set_maestro(this); // save maestro for run_all()
- if (MC_is_active())
- MC_ignore_heap(&stack_top_, sizeof(stack_top_));
- }
-}
-
-void RawContext::wrapper(void* arg)
+RawContext::RawContext(std::function<void()>&& code, actor::ActorImpl* actor, SwappedContextFactory* factory)
+ : SwappedContext(std::move(code), actor, factory)