Boost logo

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