$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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();