diff options
Diffstat (limited to 'library/cpp/coroutine/engine/trampoline.cpp')
| -rw-r--r-- | library/cpp/coroutine/engine/trampoline.cpp | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/library/cpp/coroutine/engine/trampoline.cpp b/library/cpp/coroutine/engine/trampoline.cpp index 10ea69ddc35..38e3951a515 100644 --- a/library/cpp/coroutine/engine/trampoline.cpp +++ b/library/cpp/coroutine/engine/trampoline.cpp @@ -1,50 +1,50 @@ -#include "impl.h" -#include "trampoline.h" +#include "impl.h" +#include "trampoline.h" #include "stack/stack_allocator.h" -#include <util/system/info.h> -#include <util/system/protect.h> -#include <util/system/valgrind.h> +#include <util/system/info.h> +#include <util/system/protect.h> +#include <util/system/valgrind.h> #include <util/system/yassert.h> -#include <cstdlib> -#include <util/stream/format.h> +#include <cstdlib> +#include <util/stream/format.h> -namespace NCoro { - +namespace NCoro { + TTrampoline::TTrampoline(NStack::IAllocator& allocator, ui32 stackSize, TFunc f, TCont* cont) noexcept : Stack_(allocator, stackSize, cont->Name()) , Clo_{this, Stack_.Get(), cont->Name()} - , Ctx_(Clo_) + , Ctx_(Clo_) , Func_(std::move(f)) - , Cont_(cont) - {} - - void TTrampoline::DoRun() { + , Cont_(cont) + {} + + void TTrampoline::DoRun() { if (Cont_->Executor()->FailOnError()) { Func_(Cont_); } else { try { Func_(Cont_); } catch (...) {} - } - - Cont_->Terminate(); - } - - TArrayRef<char> TTrampoline::Stack() noexcept { - return Stack_.Get(); - } + } + Cont_->Terminate(); + } + + TArrayRef<char> TTrampoline::Stack() noexcept { + return Stack_.Get(); + } + const char* TTrampoline::ContName() const noexcept { return Cont_->Name(); } - + void TTrampoline::DoRunNaked() { DoRun(); abort(); } -} +} |
