2
0
mirror of https://github.com/boostorg/fiber.git synced 2026-02-20 02:32:19 +00:00

fix comparasion of atomics for MSVC

This commit is contained in:
Oliver Kowalke
2016-05-03 18:23:09 +02:00
parent cd00819982
commit 43866a4d2e
2 changed files with 7 additions and 7 deletions

View File

@@ -371,7 +371,7 @@ context::set_terminated() noexcept {
bool
context::wait_until( std::chrono::steady_clock::time_point const& tp) noexcept {
BOOST_ASSERT( nullptr != scheduler_);
BOOST_ASSERT( nullptr != scheduler_.load() );
BOOST_ASSERT( this == active_);
return scheduler_.load()->wait_until( this, tp);
}
@@ -379,21 +379,21 @@ context::wait_until( std::chrono::steady_clock::time_point const& tp) noexcept {
bool
context::wait_until( std::chrono::steady_clock::time_point const& tp,
detail::spinlock_lock & lk) noexcept {
BOOST_ASSERT( nullptr != scheduler_);
BOOST_ASSERT( nullptr != scheduler_.load() );
BOOST_ASSERT( this == active_);
return scheduler_.load()->wait_until( this, tp, lk);
}
void
context::set_ready( context * ctx) noexcept {
BOOST_ASSERT( nullptr != ctx);
//BOOST_ASSERT( nullptr != ctx);
BOOST_ASSERT( this != ctx);
BOOST_ASSERT( nullptr != scheduler_);
BOOST_ASSERT( nullptr != ctx->scheduler_);
BOOST_ASSERT( nullptr != scheduler_.load() );
BOOST_ASSERT( nullptr != ctx->scheduler_.load() );
// FIXME: comparing scheduler address' must be synchronized?
// what if ctx is migrated between threads
// (other scheduler assigned)
if ( scheduler_ == ctx->scheduler_) {
if ( scheduler_.load() == ctx->scheduler_.load() ) {
// local
scheduler_.load()->set_ready( ctx);
} else {