From b8548fd14708c53fa6d58fb8c1e78e1ac657a809 Mon Sep 17 00:00:00 2001 From: Oliver Kowalke Date: Sun, 15 Dec 2013 17:44:22 +0100 Subject: [PATCH] main context call scheduler::instance()->run() in yield() --- include/boost/fiber/operations.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/boost/fiber/operations.hpp b/include/boost/fiber/operations.hpp index b59ce6fa..7f036890 100644 --- a/include/boost/fiber/operations.hpp +++ b/include/boost/fiber/operations.hpp @@ -32,7 +32,12 @@ fibers::fiber::id get_id() BOOST_NOEXCEPT inline void yield() -{ fibers::detail::scheduler::instance()->yield(); } +{ + if ( fibers::detail::scheduler::instance()->active() ) + fibers::detail::scheduler::instance()->yield(); + else + fibers::detail::scheduler::instance()->run(); +} inline void sleep_until( fibers::clock_type::time_point const& sleep_time)