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

some fixes related to round_robin and multithreading

This commit is contained in:
Oliver Kowalke
2013-01-14 19:53:59 +01:00
parent 8a823e4119
commit a8b32fda25
9 changed files with 210 additions and 163 deletions

View File

@@ -10,6 +10,7 @@
#include <boost/assert.hpp>
#include <boost/exception/all.hpp>
#include <boost/scope_exit.hpp>
#include <boost/system/error_code.hpp>
#include <boost/fiber/detail/scheduler.hpp>
@@ -55,15 +56,16 @@ fiber::join()
if ( ! joinable() )
{
if ( impl_->is_terminated() ) return;
boost::throw_exception(
fiber_resource_error(
system::errc::invalid_argument, "boost fiber: fiber not joinable") );
}
BOOST_SCOPE_EXIT( & impl_) {
BOOST_ASSERT( impl_->is_terminated() );
impl_.reset();
} BOOST_SCOPE_EXIT_END
detail::scheduler::instance().join( impl_);
BOOST_ASSERT( impl_->is_terminated() );
}
void