From 8948ddc12fe0b0c07656a1c06fabaaa2af0c3479 Mon Sep 17 00:00:00 2001 From: Oliver Kowalke Date: Fri, 18 Oct 2013 20:28:25 +0200 Subject: [PATCH] this_fiber::sleep() is interruption-point --- include/boost/fiber/operations.hpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/include/boost/fiber/operations.hpp b/include/boost/fiber/operations.hpp index f5ab739a..df277332 100644 --- a/include/boost/fiber/operations.hpp +++ b/include/boost/fiber/operations.hpp @@ -10,6 +10,7 @@ #include #include #include +#include #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_PREFIX @@ -32,11 +33,21 @@ void yield() inline void sleep_until( fibers::clock_type::time_point const& sleep_time) -{ fibers::detail::scheduler::instance()->wait_until( sleep_time); } +{ + fibers::detail::scheduler::instance()->wait_until( sleep_time); + + // check if fiber was interrupted + interruption_point(); +} template< typename Rep, typename Period > void sleep_for( chrono::duration< Rep, Period > const& timeout_duration) -{ fibers::detail::scheduler::instance()->wait_for( timeout_duration); } +{ + fibers::detail::scheduler::instance()->wait_for( timeout_duration); + + // check if fiber was interrupted + interruption_point(); +} }