2
0
mirror of https://github.com/boostorg/fiber.git synced 2026-02-13 12:22:36 +00:00

move 'fm_' - free functions into fiber_manager

This commit is contained in:
Oliver Kowalke
2015-02-08 16:02:22 +01:00
parent 5a0f9394e8
commit aa337b07f7
18 changed files with 203 additions and 259 deletions

View File

@@ -20,42 +20,42 @@ namespace boost {
namespace this_fiber {
disable_interruption::disable_interruption() noexcept :
set_( ( fibers::fm_active()->interruption_blocked() ) ) {
set_( ( fibers::detail::scheduler::instance()->active()->interruption_blocked() ) ) {
if ( ! set_) {
fibers::fm_active()->interruption_blocked( true);
fibers::detail::scheduler::instance()->active()->interruption_blocked( true);
}
}
disable_interruption::~disable_interruption() noexcept {
if ( ! set_) {
fibers::fm_active()->interruption_blocked( false);
fibers::detail::scheduler::instance()->active()->interruption_blocked( false);
}
}
restore_interruption::restore_interruption( disable_interruption & disabler) noexcept :
disabler_( disabler) {
if ( ! disabler_.set_) {
fibers::fm_active()->interruption_blocked( false);
fibers::detail::scheduler::instance()->active()->interruption_blocked( false);
}
}
restore_interruption::~restore_interruption() noexcept {
if ( ! disabler_.set_) {
fibers::fm_active()->interruption_blocked( true);
fibers::detail::scheduler::instance()->active()->interruption_blocked( true);
}
}
bool interruption_enabled() noexcept {
return ! fibers::fm_active()->interruption_blocked();
return ! fibers::detail::scheduler::instance()->active()->interruption_blocked();
}
bool interruption_requested() noexcept {
return fibers::fm_active()->interruption_requested();
return fibers::detail::scheduler::instance()->active()->interruption_requested();
}
void interruption_point() {
if ( interruption_requested() && interruption_enabled() ) {
fibers::fm_active()->request_interruption( false);
fibers::detail::scheduler::instance()->active()->request_interruption( false);
throw fibers::fiber_interrupted();
}
}