stack is:
RaiseException
_CxxThrowException
boost::throw_exception<boost::lock_error>[e:\library\boost_1_52\boost\throw_exception.hpp£º67]
boost::shared_mutex::timed_lock[e:\library\boost_1_52\boost\thread\win32\shared_mutex.hpp£º430]
boost::shared_mutex::lock[e:\library\boost_1_52\boost\thread\win32\shared_mutex.hpp£º382]
boost::unique_lock<boost::shared_mutex>::lock[e:\library\boost_1_52\boost\thread\locks.hpp£º510]
------------------------------------------------------------------------
bool timed_lock(boost::system_time const& wait_until)
{
for(;;)
{
state_data old_state=state;
for(;;)
{
state_data new_state=old_state;
if(new_state.shared_count || new_state.exclusive)
{
++new_state.exclusive_waiting;
if(!new_state.exclusive_waiting)
{
boost::throw_exception(boost::lock_error());
}
new_state.exclusive_waiting_blocked=true;
}
else
{
new_state.exclusive=true;
}