diff options
author | bunnei <bunneidev@gmail.com> | 2022-01-17 18:08:24 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-17 18:08:24 -0800 |
commit | 101d86897b729ca66caf7cfee246e6f238ecf723 (patch) | |
tree | 92b516dd4958ca01bb5544a475011a2634412132 /src/common/fiber.cpp | |
parent | 1dbb9e353ee7eda69c7a04c71afd4a7daf5bb1f7 (diff) | |
parent | f499c8177e661b2fadacb28aebb106e4b16c7ab1 (diff) |
Merge pull request #7712 from bunnei/fix-thread-exit
Accurately implement thread exit
Diffstat (limited to 'src/common/fiber.cpp')
-rw-r--r-- | src/common/fiber.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/common/fiber.cpp b/src/common/fiber.cpp index 62010d762..81b212e4b 100644 --- a/src/common/fiber.cpp +++ b/src/common/fiber.cpp @@ -124,7 +124,10 @@ void Fiber::YieldTo(std::weak_ptr<Fiber> weak_from, Fiber& to) { // "from" might no longer be valid if the thread was killed if (auto from = weak_from.lock()) { - ASSERT(from->impl->previous_fiber != nullptr); + if (from->impl->previous_fiber == nullptr) { + ASSERT_MSG(false, "previous_fiber is nullptr!"); + return; + } from->impl->previous_fiber->impl->context = transfer.fctx; from->impl->previous_fiber->impl->guard.unlock(); from->impl->previous_fiber.reset(); |