|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r56282 - sandbox/stm/boost/stm/detail
From: justin_at_[hidden]
Date: 2009-09-17 18:27:46
Author: jgottschlich
Date: 2009-09-17 18:27:46 EDT (Thu, 17 Sep 2009)
New Revision: 56282
URL: http://svn.boost.org/trac/boost/changeset/56282
Log:
Fixed crash bug with read-only transactions inside of deferred_update commit
where the in-flight transaction lock was released before scanning other
in-flight transactions. This caused a crash in the event another transaction
was put into flight while scanning the in-flight transaction set.
Text files modified:
sandbox/stm/boost/stm/detail/transaction_impl.hpp | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
Modified: sandbox/stm/boost/stm/detail/transaction_impl.hpp
==============================================================================
--- sandbox/stm/boost/stm/detail/transaction_impl.hpp (original)
+++ sandbox/stm/boost/stm/detail/transaction_impl.hpp 2009-09-17 18:27:46 EDT (Thu, 17 Sep 2009)
@@ -866,17 +866,18 @@
{
lock_inflight_access();
transactionsInFlight_.erase(this);
- unlock_inflight_access();
#if PERFORMING_COMPOSITION
if (other_in_flight_same_thread_transactions())
{
+ unlock_inflight_access();
state_ = e_hand_off;
bookkeeping_.inc_handoffs();
}
else
#endif
{
+ unlock_inflight_access();
tx_type(eNormalTx);
#if PERFORMING_LATM
get_tx_conflicting_locks().clear();
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk