Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r57297 - in sandbox/stm/branches/vbe: boost/stm/detail libs/stm/test
From: vicente.botet_at_[hidden]
Date: 2009-11-02 17:48:08


Author: viboes
Date: 2009-11-02 17:48:07 EST (Mon, 02 Nov 2009)
New Revision: 57297
URL: http://svn.boost.org/trac/boost/changeset/57297

Log:
TBoost.STM vbe: Using scoped locks in latm deferred update files.

Text files modified:
   sandbox/stm/branches/vbe/boost/stm/detail/latm_def_full_impl.hpp | 99 ++++++++-------
   sandbox/stm/branches/vbe/boost/stm/detail/latm_def_tm_impl.hpp | 94 +++++++-------
   sandbox/stm/branches/vbe/boost/stm/detail/latm_def_tx_impl.hpp | 92 ++++++++------
   sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_full_impl.hpp | 8
   sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_tm_impl.hpp | 4
   sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_tx_impl.hpp | 4
   sandbox/stm/branches/vbe/libs/stm/test/Jamfile.v2 | 249 ++++++++++++++++++++++-----------------
   7 files changed, 297 insertions(+), 253 deletions(-)

Modified: sandbox/stm/branches/vbe/boost/stm/detail/latm_def_full_impl.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/detail/latm_def_full_impl.hpp (original)
+++ sandbox/stm/branches/vbe/boost/stm/detail/latm_def_full_impl.hpp 2009-11-02 17:48:07 EST (Mon, 02 Nov 2009)
@@ -58,9 +58,9 @@
    //--------------------------------------------------------------------------
    if (latm::instance().latmLockedLocks_.empty())
    {
- synchro::lock_guard<Mutex> lock_g(*general_lock());
+ synchro::lock_guard<Mutex> lk_g(*general_lock());
       //synchro::lock(*general_lock());
- synchro::lock_guard<Mutex> lock_i(*inflight_lock());
+ synchro::lock_guard<Mutex> lk_i(*inflight_lock());
       //synchro::lock(*inflight_lock());
 
       std::list<transaction*> txList;
@@ -91,12 +91,15 @@
       //synchro::unlock(*inflight_lock());
    }
 
- try { latm::instance().latmLockedLocks_.insert(mutex); }
- catch (...)
- {
- synchro::unlock(*inflight_lock());
- throw;
- }
+ //try {
+ latm::instance().latmLockedLocks_.insert(mutex);
+ //}
+ //catch (...)
+ //{
+ //synchro::unlock(*inflight_lock());
+ // BUG ???
+ // throw;
+ //}
 
    return true;
 }
@@ -115,14 +118,12 @@
       t->add_to_obtained_locks(mutex);
 
       t->commit_deferred_update_tx();
- { synchro::lock_guard<Mutex> lock_l(*latm_lock());
+ { synchro::lock_guard<Mutex> lk_l(*latm_lock());
       //synchro::lock(*latm_lock());
       latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
       //synchro::unlock(*latm_lock());
        }
 
- // TBR if (hadLock) return 0;
- // TBR else return lock(mutex);
       if (hadLock) return;
       else synchro::lock(*mutex);
       return;
@@ -131,41 +132,43 @@
    int waitTime = 0, aborted = 0;
    for (;;)
    {
- // TBR int val = lock(mutex);
- // TBR if (0 != val) return val;
- //{
- synchro::lock(*mutex);
- //synchro::lock_guard<Mutex> lock_m(*mutex);
- synchro::lock(latm::instance().latmMutex_);
- //synchro::lock_guard<Mutex> lock_l(latmMutex_);
- try
       {
+ //synchro::lock(*mutex);
+ synchro::unique_lock<latm::mutex_type> lk(*mutex);
+ //synchro::lock(latm::instance().latmMutex_);
+ synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
+ //try
+ //{
          //--------------------------------------------------------------------
          // if we are able to do the core lock work, break
          //--------------------------------------------------------------------
- if (def_do_core_full_pthread_lock_mutex(mutex, waitTime, aborted)) break;
- }
- catch (...)
- {
- synchro::unlock(*mutex);
- synchro::unlock(latm::instance().latmMutex_);
- throw;
- }
+ if (def_do_core_full_pthread_lock_mutex(mutex, waitTime, aborted)) {
+ latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
+ lk.release();
+ return;
+ }
+ //}
+ //catch (...)
+ //{
+ //synchro::unlock(*mutex);
+ //synchro::unlock(latm::instance().latmMutex_);
+ // throw;
+ //}
 
       //-----------------------------------------------------------------------
       // we weren't able to do the core lock work, unlock our mutex and sleep
       //-----------------------------------------------------------------------
- synchro::unlock(*mutex);
- synchro::unlock(latm::instance().latmMutex_);
- //}
+ //synchro::unlock(*mutex);
+ //synchro::unlock(latm::instance().latmMutex_);
+ }
 
       SLEEP(cm_lock_sleep_time());
       waitTime += cm_lock_sleep_time();
       ++aborted;
    }
 
- latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
- synchro::unlock(latm::instance().latmMutex_);
+ //latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
+ //synchro::unlock(latm::instance().latmMutex_);
    return;
 }
 
@@ -183,7 +186,7 @@
       t->add_to_obtained_locks(mutex);
 
       t->commit_deferred_update_tx();
- { synchro::lock_guard<Mutex> lock_l(*latm_lock());
+ { synchro::lock_guard<Mutex> lk_l(*latm_lock());
       //synchro::lock(*latm_lock());
       latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
       //synchro::unlock(*latm_lock());
@@ -193,37 +196,39 @@
       else return synchro::try_lock(*mutex);
    }
 
- //int val = synchro::trylock(*mutex);
- //if (0 != val) return val;
- if (!synchro::try_lock(*mutex)) return false;
+ //if (!synchro::try_lock(*mutex)) return false;
+ synchro::unique_lock<latm::mutex_type> lk(*mutex, synchro::try_to_lock);
+ if (!lk) return false;
+
 
    //synchro::lock(latmMutex_);
- synchro::lock_guard<Mutex> lock_l(latm::instance().latmMutex_);
+ synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
 
- try
- {
+ //try
+ //{
       //-----------------------------------------------------------------------
       // if !core done, since trylock, we cannot stall & retry - just exit
       //-----------------------------------------------------------------------
       if (!def_do_core_full_pthread_lock_mutex(mutex, 0, 0))
       {
- synchro::unlock(*mutex);
+ //synchro::unlock(*mutex);
          //synchro::unlock(latmMutex_);
          //return -1;
          return false;
       }
- }
- catch (...)
- {
- synchro::unlock(*mutex);
+ //}
+ //catch (...)
+ //{
+ //synchro::unlock(*mutex);
       //synchro::unlock(latmMutex_);
- throw;
- }
+ // throw;
+ //}
 
    latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
    //synchro::unlock(latmMutex_);
    // note: we do not release the transactionsInFlightMutex - this will prevents
    // new transactions from starting until this lock is released
+ lk.release();
    return true;
 }
 
@@ -233,7 +238,7 @@
 inline void transaction::def_full_pthread_unlock_mutex(latm::mutex_type* mutex)
 {
    bool hasLock = true;
- { synchro::lock_guard<Mutex> lock_l(latm::instance().latmMutex_);
+ { synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
     //synchro::lock(latmMutex_);
 
    if (transaction* t = get_inflight_tx_of_same_thread(false))

Modified: sandbox/stm/branches/vbe/boost/stm/detail/latm_def_tm_impl.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/detail/latm_def_tm_impl.hpp (original)
+++ sandbox/stm/branches/vbe/boost/stm/detail/latm_def_tm_impl.hpp 2009-11-02 17:48:07 EST (Mon, 02 Nov 2009)
@@ -64,8 +64,8 @@
       // so we can abort all the in-flight transactions
       if (latm::instance().latmLockedLocks_.empty())
       {
- synchro::lock_guard<Mutex> autolock_g(*general_lock());
- synchro::lock_guard<Mutex> autolock_i(*inflight_lock());
+ synchro::lock_guard<Mutex> lk_g(*general_lock());
+ synchro::lock_guard<Mutex> lk_i(*inflight_lock());
 
          std::list<transaction*> txList;
 
@@ -109,14 +109,12 @@
       t->add_to_currently_locked_locks(mutex);
 
       {
- synchro::lock_guard<Mutex> lock_l(*latm_lock());
+ synchro::lock_guard<Mutex> lk_l(*latm_lock());
       //synchro::lock(*latm_lock());
       latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
       //synchro::unlock(*latm_lock());
       }
 
- // TBR if (hadLock) return 0;
- // TBR else return lock(mutex);
       if (hadLock) return;
       else synchro::lock(*mutex);
       return;
@@ -126,43 +124,47 @@
 
    for (;;)
    {
- // TRR int val = lock(mutex);
- // TRR if (0 != val) return val;
- //{
- //synchro::lock_guard<Mutex> lock_m(*latm_lock());
- //synchro::lock_guard<Mutex> lock_l(latmMutex_);
- synchro::lock(*mutex);
- synchro::lock(latm::instance().latmMutex_);
+ {
+ //synchro::lock(*mutex);
+ synchro::unique_lock<latm::mutex_type> lk(*mutex);
+
+ //synchro::lock(latm::instance().latmMutex_);
+ synchro::lock_guard<Mutex> lk_l(*latm_lock());
 
- try
- {
+ //try
+ //{
          //--------------------------------------------------------------------
          // if we are able to do the core lock work, break
          //--------------------------------------------------------------------
          if (def_do_core_tm_conflicting_lock_pthread_lock_mutex
- (mutex, waitTime, aborted)) break;
- }
- catch (...)
- {
- synchro::unlock(*mutex);
- synchro::unlock(latm::instance().latmMutex_);
- throw;
- }
+ (mutex, waitTime, aborted)) {
+ latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
+ //synchro::unlock(latm::instance().latmMutex_);
+ lk.release();
+ return;
+ }
+ //}
+ //catch (...)
+ //{
+ //synchro::unlock(*mutex);
+ //synchro::unlock(latm::instance().latmMutex_);
+ // throw;
+ //}
 
       //-----------------------------------------------------------------------
       // we weren't able to do the core lock work, unlock our mutex and sleep
       //-----------------------------------------------------------------------
- synchro::unlock(*mutex);
- synchro::unlock(latm::instance().latmMutex_);
- //}
+ //synchro::unlock(*mutex);
+ //synchro::unlock(latm::instance().latmMutex_);
+ }
 
       SLEEP(cm_lock_sleep_time());
       waitTime += cm_lock_sleep_time();
       ++aborted;
    }
 
- latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
- synchro::unlock(latm::instance().latmMutex_);
+ //latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
+ //synchro::unlock(latm::instance().latmMutex_);
 
    return;
 }
@@ -182,7 +184,7 @@
       t->add_to_currently_locked_locks(mutex);
 
       {
- synchro::lock_guard<Mutex> lock_l(*latm_lock());
+ synchro::lock_guard<Mutex> lk_l(*latm_lock());
       //synchro::lock(*latm_lock());
       latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
       //synchro::unlock(*latm_lock());
@@ -191,41 +193,39 @@
       if (hadLock) return true;
       else return synchro::try_lock(*mutex);
    }
-
- //synchro::unique_lock<Mutex> lock_m(*mutex, synchro::try_to_lock);
- //if (lock_m) return true;
-
- //int val = synchro::try_lock(*mutex);
- //if (0 != val) return val;
- if (!synchro::try_lock(*mutex)) return false;
+
+ //if (!synchro::try_lock(*mutex)) return false;
+ synchro::unique_lock<latm::mutex_type> lk(*mutex, synchro::try_to_lock);
+ if (!lk) return false;
 
    //synchro::lock(latmMutex_);
- synchro::lock_guard<Mutex> lock_l(latm::instance().latmMutex_);
+ synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
 
- try
- {
+ //try
+ //{
       //-----------------------------------------------------------------------
       // if !core done, since trylock, we cannot stall & retry - just exit
       //-----------------------------------------------------------------------
       if (!def_do_core_tm_conflicting_lock_pthread_lock_mutex(mutex, 0, 0))
       {
- synchro::unlock(*mutex); // BUG ???
+ //synchro::unlock(*mutex);
          //synchro::unlock(latmMutex_);
          //return -1;
          return false;
       }
- }
- catch (...)
- {
- synchro::unlock(*mutex); // BUG ???
+ //}
+ //catch (...)
+ //{
+ //synchro::unlock(*mutex);
       //synchro::unlock(latmMutex_);
- throw;
- }
+ // throw;
+ //}
 
    latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
    //synchro::unlock(latmMutex_);
    // note: we do not release the transactionsInFlightMutex - this will prevents
    // new transactions from starting until this lock is released
+ lk.release();
    return true;
 }
 
@@ -236,7 +236,7 @@
 {
    bool hasLock = true;
    {
- synchro::lock_guard<Mutex> lock_l(latm::instance().latmMutex_);
+ synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
    //synchro::lock(latmMutex_);
 
    if (transaction* t = get_inflight_tx_of_same_thread(false))
@@ -269,8 +269,6 @@
    //synchro::unlock(latmMutex_);
    }
 
- // TBR if (hasLock) return unlock(mutex);
- // TBR else return 0;
    if (hasLock) synchro::unlock(*mutex);
    return;
 }

Modified: sandbox/stm/branches/vbe/boost/stm/detail/latm_def_tx_impl.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/detail/latm_def_tx_impl.hpp (original)
+++ sandbox/stm/branches/vbe/boost/stm/detail/latm_def_tx_impl.hpp 2009-11-02 17:48:07 EST (Mon, 02 Nov 2009)
@@ -50,8 +50,8 @@
    // set. do not keep in-flight transactions blocked once the transactions have
    // been processed.
    //--------------------------------------------------------------------------
- synchro::lock_guard<Mutex> autolock_g(*general_lock());
- synchro::lock_guard<Mutex> autolock_i(*inflight_lock());
+ synchro::lock_guard<Mutex> lk_g(*general_lock());
+ synchro::lock_guard<Mutex> lk_i(*inflight_lock());
 
    std::list<transaction *> txList;
    std::set<thread_id_t> txThreadId;
@@ -152,56 +152,62 @@
 
       if (!t->is_currently_locked_lock(mutex))
       {
- synchro::lock(*mutex); // TBR if (0 != lock(mutex)) return -1;
+ synchro::lock(*mutex);
       }
 
       t->add_to_currently_locked_locks(mutex);
       t->add_to_obtained_locks(mutex);
       t->commit_deferred_update_tx();
 
- synchro::lock(latm::instance().latmMutex_);
+ //synchro::lock(latm::instance().latmMutex_);
+ synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
       def_do_core_tx_conflicting_lock_pthread_lock_mutex
          (mutex, 0, 0, true);
- synchro::unlock(latm::instance().latmMutex_);
+ //synchro::unlock(latm::instance().latmMutex_);
 
       return;
    }
 
    for (;;)
    {
- synchro::lock(*mutex); // TBR int val = lock(mutex);
- // TBR if (0 != val) return val;
+ {//synchro::lock(*mutex);
+ synchro::unique_lock<latm::mutex_type> lk(*mutex);
 
- synchro::lock(latm::instance().latmMutex_);
+ //synchro::lock(latm::instance().latmMutex_);
+ synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
 
- try
- {
+ //try
+ //{
          //--------------------------------------------------------------------
          // if we are able to do the core lock work, break
          //--------------------------------------------------------------------
          if (def_do_core_tx_conflicting_lock_pthread_lock_mutex
- (mutex, waitTime, aborted, false)) break;
- }
- catch (...)
- {
- synchro::unlock(*mutex);
- synchro::unlock(latm::instance().latmMutex_);
- throw;
- }
+ (mutex, waitTime, aborted, false)) {
+ latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
+ lk.release();
+ return;
+ }
+ //}
+ //catch (...)
+ //{
+ //synchro::unlock(*mutex);
+ //synchro::unlock(latm::instance().latmMutex_);
+ // throw;
+ //}
 
       //-----------------------------------------------------------------------
       // we weren't able to do the core lock work, unlock our mutex and sleep
       //-----------------------------------------------------------------------
- synchro::unlock(*mutex);
- synchro::unlock(latm::instance().latmMutex_);
-
+ //synchro::unlock(*mutex);
+ } //synchro::unlock(latm::instance().latmMutex_);
+
       SLEEP(cm_lock_sleep_time());
       waitTime += cm_lock_sleep_time();
       ++aborted;
    }
 
- latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
- synchro::unlock(latm::instance().latmMutex_);
+ //latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
+ //synchro::unlock(latm::instance().latmMutex_);
 
    // note: we do not release the transactionsInFlightMutex - this will prevents
    // new transactions from starting until this lock is released
@@ -219,11 +225,12 @@
 
    bool txIsIrrevocable = false;
 
- //int val = synchro::try_lock(*mutex);
- //if (0 != val) return val;
- if (!synchro::try_lock(*mutex)) return false;
+ //if (!synchro::try_lock(*mutex)) return false;
+ synchro::unique_lock<latm::mutex_type> lk(*mutex, synchro::try_to_lock);
+ if (!lk) return false;
 
- synchro::lock(latm::instance().latmMutex_);
+ //synchro::lock(latm::instance().latmMutex_);
+ synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
 
    if (transaction* t = get_inflight_tx_of_same_thread(false))
    {
@@ -234,31 +241,32 @@
       t->commit_deferred_update_tx();
    }
 
- try
- {
+ //try
+ //{
       //-----------------------------------------------------------------------
       // if !core done, since trylock, we cannot stall & retry - just exit
       //-----------------------------------------------------------------------
       if (!def_do_core_tx_conflicting_lock_pthread_lock_mutex(mutex, 0, 0, txIsIrrevocable))
       {
- synchro::unlock(*mutex);
- synchro::unlock(latm::instance().latmMutex_);
+ //synchro::unlock(*mutex);
+ //synchro::unlock(latm::instance().latmMutex_);
          //return -1;
          return false;
       }
- }
- catch (...)
- {
- synchro::unlock(*mutex);
- synchro::unlock(latm::instance().latmMutex_);
- throw;
- }
+ //}
+ //catch (...)
+ //{
+ //synchro::unlock(*mutex);
+ //synchro::unlock(latm::instance().latmMutex_);
+ // throw;
+ //}
 
    latm::instance().latmLockedLocksOfThreadMap_[mutex] = this_thread::get_id();
- synchro::unlock(latm::instance().latmMutex_);
+ //synchro::unlock(latm::instance().latmMutex_);
 
    // note: we do not release the transactionsInFlightMutex - this will prevents
    // new transactions from starting until this lock is released
+ lk.release();
    return true;
 }
 
@@ -267,9 +275,9 @@
 //----------------------------------------------------------------------------
 inline void transaction::def_tx_conflicting_lock_pthread_unlock_mutex(latm::mutex_type* mutex)
 {
- synchro::lock_guard<Mutex> autolock_l(*latm_lock());
- synchro::lock_guard<Mutex> autolock_g(*general_lock());
- synchro::lock_guard<Mutex> autolock_i(*inflight_lock());
+ synchro::lock_guard<Mutex> lk_l(*latm_lock());
+ synchro::lock_guard<Mutex> lk_g(*general_lock());
+ synchro::lock_guard<Mutex> lk_i(*inflight_lock());
    bool hasLock = true;
 
    if (transaction* t = get_inflight_tx_of_same_thread(true))

Modified: sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_full_impl.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_full_impl.hpp (original)
+++ sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_full_impl.hpp 2009-11-02 17:48:07 EST (Mon, 02 Nov 2009)
@@ -149,7 +149,7 @@
       // TBR int val = lock(mutex);
       // TBR if (0 != val) return val;
       {//synchro::lock(*mutex);
- synchro::unique_lock<Mutex> lk(*mutex);
+ synchro::unique_lock<latm::mutex_type> lk(*mutex);
 
       //synchro::lock(latm::instance().latmMutex_);
       synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
@@ -209,11 +209,7 @@
       else return synchro::try_lock(*mutex);
    }
 
- //synchro::unique_lock<Mutex> lock_m(*mutex, synchro::try_to_lock);
- //if (lock_m) return true;
- //int val = synchro::try_lock(*mutex);
- //if (0 != val) return val;
- synchro::unique_lock<Mutex> lk(*mutex, synchro::try_to_lock);
+ synchro::unique_lock<latm::mutex_type> lk(*mutex, synchro::try_to_lock);
    if (!lk) return false;
    //if (!synchro::try_lock(*mutex)) return false;
 

Modified: sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_tm_impl.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_tm_impl.hpp (original)
+++ sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_tm_impl.hpp 2009-11-02 17:48:07 EST (Mon, 02 Nov 2009)
@@ -138,7 +138,7 @@
    for (;;)
    {
       {//synchro::lock(*mutex);
- synchro::unique_lock<Mutex> lk(*mutex);
+ synchro::unique_lock<latm::mutex_type> lk(*mutex);
 
       //synchro::lock(latm::instance().latmMutex_);
        synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
@@ -188,7 +188,7 @@
 
    //int val = synchro::try_lock(*mutex);
    //if (0 != val) return val;
- synchro::unique_lock<Mutex> lk(*mutex, synchro::try_to_lock);
+ synchro::unique_lock<latm::mutex_type> lk(*mutex, synchro::try_to_lock);
    if (!lk) return false;
    //if (!synchro::try_lock(*mutex)) return false;
 

Modified: sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_tx_impl.hpp
==============================================================================
--- sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_tx_impl.hpp (original)
+++ sandbox/stm/branches/vbe/boost/stm/detail/latm_dir_tx_impl.hpp 2009-11-02 17:48:07 EST (Mon, 02 Nov 2009)
@@ -216,7 +216,7 @@
       // TBR int val = lock(mutex);
       // TBR if (0 != val) return val;
       {//synchro::lock(*mutex);
- synchro::unique_lock<Mutex> lk(*mutex);
+ synchro::unique_lock<latm::mutex_type> lk(*mutex);
 
       //synchro::lock(latm::instance().latmMutex_);
       synchro::lock_guard<Mutex> lk_l(latm::instance().latmMutex_);
@@ -271,7 +271,7 @@
 
    //int val = synchro::try_lock(*mutex);
    //if (0 != val) return val;
- synchro::unique_lock<Mutex> lk(*mutex, synchro::try_to_lock);
+ synchro::unique_lock<latm::mutex_type> lk(*mutex, synchro::try_to_lock);
    if (!lk) return false;
    //if (!synchro::try_lock(*mutex)) return false;
 

Modified: sandbox/stm/branches/vbe/libs/stm/test/Jamfile.v2
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/test/Jamfile.v2 (original)
+++ sandbox/stm/branches/vbe/libs/stm/test/Jamfile.v2 2009-11-02 17:48:07 EST (Mon, 02 Nov 2009)
@@ -53,24 +53,9 @@
 
     alias def_invalid
         :
- ########### fails sometimes
- #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
- [ run stm : -bench accounts -def -threads 2 -inserts 100 : : : test_accounts_def_t2_i100 ]
- ########### fails sometimes
- #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
- [ run stm : -bench accounts -def -threads 4 -inserts 100 : : : test_accounts_def_t4_i100 ]
-
             [ run stm : -bench hashmap -def -threads 2 -inserts 100 : : : test_hashmap_def_t2_i100 ]
- ########### fails
- #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
- #[ run stm : -bench hashmap -def -threads 4 -inserts 100 : : : test_hashmap_def_t4_i100 ]
 
 
- ########### fails
- # /bin/sh: line 4: 2944 Aborted (core dumped) "bin/test_ht_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_ht_def_t2_i1000.exe" > "bin/test_ht_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_ht_def_t2_i1000.output" 2>&1
- # Rounding max threads to the next multiple of 4 (4).
- # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
- #[ run stm : -bench ht -def -threads 2 -inserts 100 -latm full : : : test_ht_def_full_t2_i100 ]
             [ run stm : -bench ht -def -threads 2 -inserts 100 -latm tm : : : test_ht_def_tm_t2_i100 ]
             [ run stm : -bench ht -def -threads 4 -inserts 100 -latm tm : : : test_ht_def_tm_t4_i100 ]
             [ run stm : -bench ht -def -threads 2 -inserts 100 -latm tx : : : test_ht_def_tx_t2_i100 ]
@@ -83,22 +68,9 @@
             #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
             [ run stm : -bench linkedlist -def -threads 4 -inserts 100 : : : test_linkedlist_def_t4_i100 ]
 
- ########### fails
- # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
- #[ run stm : -bench ll -def -threads 2 -inserts 100 -latm full : : : test_ll_def_full_t2_i100 ]
             [ run stm : -bench ll -def -threads 2 -inserts 100 -latm tm : : : test_ll_def_tm_t2_i100 ]
             [ run stm : -bench ll -def -threads 4 -inserts 100 -latm tm : : : test_ll_def_tm_t4_i100 ]
- ########### fails
- #[ run stm : -bench ll -def -threads 2 -inserts 100 -latm tx : : : test_ll_def_tx_t2_i100 ]
 
- ########### fails all-modes
- # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
- # 19469 [sig] test_tx_linear_lock_def_t2 3768 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack)
- #[ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm full : : : test_tx_linear_lock_def_full_t2_i100 ]
- ########### fails
- #[ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm tm : : : test_tx_linear_lock_def_tm_t2_i100 ]
- ########### fails
- #[ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm tx : : : test_tx_linear_lock_def_tx_t2_i100 ]
 
             [ run stm : -bench isolated_int_lock_in_tx -def -threads 2 -inserts 100 -latm full : : : test_isolated_int_lock_in_tx_def_full_t2_i100 ]
             [ run stm : -bench isolated_int_lock_in_tx -def -threads 4 -inserts 100 -latm full : : : test_isolated_int_lock_in_tx_def_full_t4_i100 ]
@@ -107,42 +79,10 @@
             [ run stm : -bench isolated_int_lock_in_tx -def -threads 2 -inserts 100 -latm tx : : : test_isolated_int_lock_in_tx_def_tx_t2_i100 ]
             [ run stm : -bench isolated_int_lock_in_tx -def -threads 4 -inserts 100 -latm tx : : : test_isolated_int_lock_in_tx_def_tx_t4_i100 ]
 
- ########### fails all-modes
- # /bin/sh: line 4: 3660 Segmentation fault (core dumped) "bin/test_isolated_composed_int_lock_def_t2.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock_def_t2.exe" > "bin/test_isolated_composed_int_lock_def_t2.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock_def_t2.output" 2>&1
- # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
- #[ run stm : -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm full : : : test_isolated_composed_int_lock_def_full_t2_i100 ]
- ########### fails
- # /bin/sh: line 4: 4744 Aborted (core dumped) "bin/gcc-3.4.4/debug/threading-multi/stm.exe" -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm tm > "bin/test_isolated_composed_int_lock_def_tm_t2_i100.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock_def_tm_t2_i100.output" 2>&1
- #[ run stm : -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm tm : : : test_isolated_composed_int_lock_def_tm_t2_i100 ]
- ########### fails
- # /bin/sh: line 4: 4772 Aborted (core dumped) "bin/gcc-3.4.4/debug/threading-multi/stm.exe" -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm tx > "bin/test_isolated_composed_int_lock_def_tx_t2_i100.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock_def_tx_t2_i100.output" 2>&1
- #[ run stm : -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm tx : : : test_isolated_composed_int_lock_def_tx_t2_i100 ]
 
- ########### fails
- #/bin/sh: line 4: 4536 Aborted (core dumped) "bin/gcc-3.4.4/debug/threading-multi/stm.exe" -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm full > "bin/test_isolated_composed_int_lock2_def_full_t2_i100.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock2_def_full_t2_i100.output" 2>&1
- #====== BEGIN OUTPUT ======
- #61 i= 0
- #66 i=0 end= 50 count= 1
- #70 lock
- #73 1
- #74 unlock
- #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
- #[ run stm : -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm full : : : test_isolated_composed_int_lock2_def_full_t2_i100 ]
- ########### fails
- #/bin/sh: line 4: 4556 Aborted (core dumped) "bin/gcc-3.4.4/debug/threading-multi/stm.exe" -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm tm > "bin/test_isolated_composed_int_lock2_def_tm_t2_i100.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock2_def_tm_t2_i100.output" 2>&1
- #====== BEGIN OUTPUT ======
- #61 i= 0
- #66 i=0 end= 50 count= 1
- #70 lock
- #[ run stm : -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm tm : : : test_isolated_composed_int_lock2_def_tm_t2_i100 ]
             [ run stm : -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm tx : : : test_isolated_composed_int_lock2_def_tx_t2_i100 ]
- ########### fails
- #[ run stm : -bench isolated_composed_int_lock2 -def -threads 4 -inserts 100 -latm tx : : : test_isolated_composed_int_lock2_def_tx_t4_i100 ]
 
             [ run stm : -bench irrevocable_int -def -threads 2 -inserts 100 : : : test_irrevocable_int_def_t2_i100 ]
- ########### fails sometimes
- #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
- #[ run stm : -bench irrevocable_int -def -threads 4 -inserts 100 : : : test_irrevocable_int_def_t4_i100 ]
 
             ########### deadlock. killed after 0:26. 00% CPU all-modes
             #[ run stm : -bench lot_example -def -threads 2 -inserts 100 -latm full : : : test_lot_example_def_full_t2_i100 ]
@@ -167,35 +107,12 @@
             ##[ run stm : -bench nested_tx -def -threads 2 -inserts 100 -latm tx : : : test_nested_tx_def_tx_t2_i100 ]
 
             [ run stm : -bench rbtree -def -threads 2 -inserts 100 : : : test_rbtree_def_t2_i100 ]
- ########### fails sometimes
- #[ run stm : -bench rbtree -def -threads 4 -inserts 100 : : : test_rbtree_def_t4_i100 ]
 
             [ run stm : -bench smart -def -threads 4 -inserts 100 : : : test_smart_def_t4_i100 ]
 
- ########### fails all-modes
- # /bin/sh: line 4: 2376 Aborted (core dumped) "bin/test_using_linkedlist_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_using_linkedlist_def_t2_i1000.exe" > "bin/test_using_linkedlist_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_using_linkedlist_def_t2_i1000.output" 2>&1
- #[ run stm : -bench using_linkedlist -def -threads 2 -inserts 100 -latm full : : : test_using_linkedlist_def_full_t2_i100 ]
- ########### fails
- #[ run stm : -bench using_linkedlist -def -threads 2 -inserts 100 -latm tm : : : test_using_linkedlist_def_tm_t2_i100 ]
- ########### fails
- #[ run stm : -bench using_linkedlist -def -threads 2 -inserts 100 -latm tx : : : test_using_linkedlist_def_tx_t2_i100 ]
 
- ########### fails all-modes
- # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
- #[ run stm : -bench hashmap_w_locks -def -threads 2 -inserts 100 -latm full : : : test_hashmap_w_locks_def_full_t2_i100 ]
- ########### fails
- # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
- #[ run stm : -bench hashmap_w_locks -def -threads 2 -inserts 100 -latm tm : : : test_hashmap_w_locks_def_tm_t2_i100 ]
- ########### fails
- #[ run stm : -bench hashmap_w_locks -def -threads 2 -inserts 100 -latm tx : : : test_hashmap_w_locks_def_tx_t2_i100 ]
 
- ########### fails
- # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
- #[ run stm : -bench list_hash_w_locks -def -threads 2 -inserts 100 -latm full : : : test_list_hash_w_locks_def_full_t2_i100 ]
             [ run stm : -bench list_hash_w_locks -def -threads 2 -inserts 100 -latm tm : : : test_list_hash_w_locks_def_tm_t2_i100 ]
- ########### fails
- #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
- #[ run stm : -bench list_hash_w_locks -def -threads 4 -inserts 100 -latm tm : : : test_list_hash_w_locks_def_tm_t4_i100 ]
             [ run stm : -bench list_hash_w_locks -def -threads 2 -inserts 100 -latm tx : : : test_list_hash_w_locks_def_tx_t2_i100 ]
             [ run stm : -bench list_hash_w_locks -def -threads 4 -inserts 100 -latm tx : : : test_list_hash_w_locks_def_tx_t4_i100 ]
     ;
@@ -221,10 +138,6 @@
             [ run stm : -bench ll -dir -threads 4 -inserts 100 -latm full : : : test_ll_dir_t4_full_i100 ]
             [ run stm : -bench ll -dir -threads 2 -inserts 100 -latm tm : : : test_ll_dir_t2_tm_i100 ]
             [ run stm : -bench ll -dir -threads 4 -inserts 100 -latm tm : : : test_ll_dir_t4_tm_i100 ]
- ########### fails
- #[ run stm : -bench ll -dir -threads 2 -inserts 100 -latm tx : : : test_ll_dir_t2_tx_i100 ]
- ########### fails sometimes
- #[ run stm : -bench ll -dir -threads 4 -inserts 100 -latm tx : : : test_ll_dir_t4_tx_i100 ]
 
             ########### fails with CHECK all-modes
             #/bin/sh: line 4: 3764 Aborted (core dumped) "bin/test_tx_linear_lock_dir_t2.test/gcc-3.4.4/debug/threading-multi/test_tx_linear_lock_dir_t2.exe" > "bin/test_tx_linear_lock_dir_t2.test/gcc-3.4.4/debug/threading-multi/test_tx_linear_lock_dir_t2.output" 2>&1
@@ -233,8 +146,6 @@
             [ run stm : -bench tx_linear_lock -dir -threads 2 -inserts 100 -latm full : : : test_tx_linear_lock_dir_full_t2_i100 ]
             ###########
             #[ run stm : -bench tx_linear_lock -dir -threads 4 -inserts 100 -latm full : : : test_tx_linear_lock_dir_full_t4_i100 ]
- ########### fails
- #[ run stm : -bench tx_linear_lock -dir -threads 2 -inserts 100 -latm tm : : : test_tx_linear_lock_dir_tm_t2_i100 ]
             ########### deadlock
             #[ run stm : -bench tx_linear_lock -dir -threads 2 -inserts 100 -latm tx : : : test_tx_linear_lock_dir_tx_t2_i100 ]
 
@@ -252,16 +163,7 @@
             ########### fails
             #[ run stm : -bench isolated_composed_int_lock -dir -threads 2 -inserts 100 -latm tx : : : test_isolated_composed_int_lock_dir_tx_t2_i100 ]
 
- ########### fails
- # /bin/sh: line 4: 3172 Aborted (core dumped) "bin/test_isolated_composed_int_lock2_dir_t2.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock2_dir_t2.exe" > "bin/test_isolated_composed_int_lock2_dir_t2.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock2_dir_t2.output" 2>&1
- #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
- # 11 [sig] test_isolated_composed_int_lock_def_t2 3660 _cygtls::handle_except ions: Error while dumping state (probably corrupted stack)
- #[ run stm : -bench isolated_composed_int_lock2 -dir -threads 2 -inserts 100 -latm full : : : test_isolated_composed_int_lock2_dir_full_t2_i100 ]
- ########### fails
- #[ run stm : -bench isolated_composed_int_lock2 -dir -threads 2 -inserts 100 -latm tm : : : test_isolated_composed_int_lock2_dir_tm_t2_i100 ]
             [ run stm : -bench isolated_composed_int_lock2 -dir -threads 2 -inserts 100 -latm tx : : : test_isolated_composed_int_lock2_dir_tx_t2_i100 ]
- ########### fails
- #[ run stm : -bench isolated_composed_int_lock2 -dir -threads 4 -inserts 100 -latm tx : : : test_isolated_composed_int_lock2_dir_tx_t4_i100 ]
 
             [ run stm : -bench irrevocable_int -dir -threads 4 -inserts 100 : : : test_irrevocable_int_dir_t4_i100 ]
 
@@ -288,13 +190,6 @@
 
             [ run stm : -bench smart -dir -threads 4 -inserts 100 : : : test_smart_dir_t4_i100 ]
 
- ########### fails all-modes
- #/bin/sh: line 4: 408 Aborted (core dumped) "bin/test_using_linkedlist_dir_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_using_linkedlist_dir_t2_i1000.exe" > "bin/test_using_linkedlist_dir_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_using_linkedlist_dir_t2_i1000.output" 2>&1
- #[ run stm : -bench using_linkedlist -dir -threads 2 -inserts 100 -latm full : : : test_using_linkedlist_dir_full_t2_i100 ]
- ########### fails
- #[ run stm : -bench using_linkedlist -dir -threads 2 -inserts 100 -latm tm : : : test_using_linkedlist_dir_tm_t2_i100 ]
- ########### fails
- #[ run stm : -bench using_linkedlist -dir -threads 2 -inserts 100 -latm tx : : : test_using_linkedlist_dir_tx_t2_i100 ]
 
             [ run stm : -bench hashmap_w_locks -dir -threads 4 -inserts 100 -latm full : : : test_hashmap_w_locks_dir_full_t4_i100 ]
             [ run stm : -bench hashmap_w_locks -dir -threads 4 -inserts 100 -latm tm : : : test_hashmap_w_locks_dir_tm_t4_i100 ]
@@ -332,6 +227,148 @@
         : dir_invalid
     ;
 
+ alias fails_sometimes
+ :
+ ########### fails sometimes
+ #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
+ [ run stm : -bench accounts -def -threads 2 -inserts 100 : : : test_accounts_def_t2_i100 ]
+ ########### fails sometimes
+ #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
+ [ run stm : -bench accounts -def -threads 4 -inserts 100 : : : test_accounts_def_t4_i100 ]
+
+ ########### fails sometimes
+ #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
+ [ run stm : -bench hashmap -def -threads 4 -inserts 100 : : : test_hashmap_def_t4_i100 ]
+
+ ########### fails sometimes
+ [ run stm : -bench ll -def -threads 2 -inserts 100 -latm tx : : : test_ll_def_tx_t2_i100 ]
+
+ ########### fails sometimes
+ #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
+ [ run stm : -bench irrevocable_int -def -threads 4 -inserts 100 : : : test_irrevocable_int_def_t4_i100 ]
+
+ ########### fails sometimes
+ [ run stm : -bench rbtree -def -threads 4 -inserts 100 : : : test_rbtree_def_t4_i100 ]
+
+ ########### fails
+ [ run stm : -bench ll -dir -threads 2 -inserts 100 -latm tx : : : test_ll_dir_t2_tx_i100 ]
+
+ ########### fails sometimes
+ [ run stm : -bench ll -dir -threads 4 -inserts 100 -latm tx : : : test_ll_dir_t4_tx_i100 ]
+
+ ########### fails
+ # /bin/sh: line 4: 3172 Aborted (core dumped) "bin/test_isolated_composed_int_lock2_dir_t2.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock2_dir_t2.exe" > "bin/test_isolated_composed_int_lock2_dir_t2.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock2_dir_t2.output" 2>&1
+ #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
+ # 11 [sig] test_isolated_composed_int_lock_def_t2 3660 _cygtls::handle_except ions: Error while dumping state (probably corrupted stack)
+ [ run stm : -bench isolated_composed_int_lock2 -dir -threads 2 -inserts 100 -latm full : : : test_isolated_composed_int_lock2_dir_full_t2_i100 ]
+
+ ;
+
+ alias failures
+ :
+ ########### fails
+ # /bin/sh: line 4: 2944 Aborted (core dumped) "bin/test_ht_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_ht_def_t2_i1000.exe" > "bin/test_ht_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_ht_def_t2_i1000.output" 2>&1
+ # Rounding max threads to the next multiple of 4 (4).
+ # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
+ [ run stm : -bench ht -def -threads 2 -inserts 100 -latm full : : : test_ht_def_full_t2_i100 ]
+
+ ########### fails
+ # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
+ [ run stm : -bench ll -def -threads 2 -inserts 100 -latm full : : : test_ll_def_full_t2_i100 ]
+
+
+ ########### fails all-modes
+ # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
+ # 19469 [sig] test_tx_linear_lock_def_t2 3768 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack)
+ [ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm full : : : test_tx_linear_lock_def_full_t2_i100 ]
+
+ ########### fails
+ [ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm tx : : : test_tx_linear_lock_def_tx_t2_i100 ]
+
+ ########### fails all-modes
+ # /bin/sh: line 4: 3660 Segmentation fault (core dumped) "bin/test_isolated_composed_int_lock_def_t2.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock_def_t2.exe" > "bin/test_isolated_composed_int_lock_def_t2.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock_def_t2.output" 2>&1
+ # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
+ [ run stm : -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm full : : : test_isolated_composed_int_lock_def_full_t2_i100 ]
+
+ ########### fails
+ # /bin/sh: line 4: 4744 Aborted (core dumped) "bin/gcc-3.4.4/debug/threading-multi/stm.exe" -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm tm > "bin/test_isolated_composed_int_lock_def_tm_t2_i100.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock_def_tm_t2_i100.output" 2>&1
+ [ run stm : -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm tm : : : test_isolated_composed_int_lock_def_tm_t2_i100 ]
+
+ ########### fails
+ # /bin/sh: line 4: 4772 Aborted (core dumped) "bin/gcc-3.4.4/debug/threading-multi/stm.exe" -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm tx > "bin/test_isolated_composed_int_lock_def_tx_t2_i100.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock_def_tx_t2_i100.output" 2>&1
+ [ run stm : -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm tx : : : test_isolated_composed_int_lock_def_tx_t2_i100 ]
+
+ ########### fails
+ #/bin/sh: line 4: 4536 Aborted (core dumped) "bin/gcc-3.4.4/debug/threading-multi/stm.exe" -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm full > "bin/test_isolated_composed_int_lock2_def_full_t2_i100.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock2_def_full_t2_i100.output" 2>&1
+ #====== BEGIN OUTPUT ======
+ #61 i= 0
+ #66 i=0 end= 50 count= 1
+ #70 lock
+ #73 1
+ #74 unlock
+ #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
+ [ run stm : -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm full : : : test_isolated_composed_int_lock2_def_full_t2_i100 ]
+
+ ########### fails
+ #/bin/sh: line 4: 4556 Aborted (core dumped) "bin/gcc-3.4.4/debug/threading-multi/stm.exe" -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm tm > "bin/test_isolated_composed_int_lock2_def_tm_t2_i100.test/gcc-3.4.4/debug/threading-multi/test_isolated_composed_int_lock2_def_tm_t2_i100.output" 2>&1
+ #====== BEGIN OUTPUT ======
+ #61 i= 0
+ #66 i=0 end= 50 count= 1
+ #70 lock
+ [ run stm : -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm tm : : : test_isolated_composed_int_lock2_def_tm_t2_i100 ]
+
+ ########### fails
+ [ run stm : -bench isolated_composed_int_lock2 -def -threads 4 -inserts 100 -latm tx : : : test_isolated_composed_int_lock2_def_tx_t4_i100 ]
+
+ ########### fails all-modes
+ # /bin/sh: line 4: 2376 Aborted (core dumped) "bin/test_using_linkedlist_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_using_linkedlist_def_t2_i1000.exe" > "bin/test_using_linkedlist_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_using_linkedlist_def_t2_i1000.output" 2>&1
+ [ run stm : -bench using_linkedlist -def -threads 2 -inserts 100 -latm full : : : test_using_linkedlist_def_full_t2_i100 ]
+
+ ########### fails
+ [ run stm : -bench using_linkedlist -def -threads 2 -inserts 100 -latm tm : : : test_using_linkedlist_def_tm_t2_i100 ]
+
+ ########### fails
+ [ run stm : -bench using_linkedlist -def -threads 2 -inserts 100 -latm tx : : : test_using_linkedlist_def_tx_t2_i100 ]
+
+ ########### fails all-modes
+ # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
+ [ run stm : -bench hashmap_w_locks -def -threads 2 -inserts 100 -latm full : : : test_hashmap_w_locks_def_full_t2_i100 ]
+ ########### fails
+ # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
+ [ run stm : -bench hashmap_w_locks -def -threads 2 -inserts 100 -latm tm : : : test_hashmap_w_locks_def_tm_t2_i100 ]
+ ########### fails
+ [ run stm : -bench hashmap_w_locks -def -threads 2 -inserts 100 -latm tx : : : test_hashmap_w_locks_def_tx_t2_i100 ]
+
+ ########### fails
+ # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
+ [ run stm : -bench list_hash_w_locks -def -threads 2 -inserts 100 -latm full : : : test_list_hash_w_locks_def_full_t2_i100 ]
+
+ ########### fails
+ #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
+ [ run stm : -bench list_hash_w_locks -def -threads 4 -inserts 100 -latm tm : : : test_list_hash_w_locks_def_tm_t4_i100 ]
+
+ ########### fails
+ [ run stm : -bench tx_linear_lock -dir -threads 2 -inserts 100 -latm tm : : : test_tx_linear_lock_dir_tm_t2_i100 ]
+
+ ########### fails
+ [ run stm : -bench isolated_composed_int_lock2 -dir -threads 2 -inserts 100 -latm tm : : : test_isolated_composed_int_lock2_dir_tm_t2_i100 ]
+
+ ########### fails
+ [ run stm : -bench isolated_composed_int_lock2 -dir -threads 4 -inserts 100 -latm tx : : : test_isolated_composed_int_lock2_dir_tx_t4_i100 ]
+
+ ########### fails all-modes
+ #/bin/sh: line 4: 408 Aborted (core dumped) "bin/test_using_linkedlist_dir_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_using_linkedlist_dir_t2_i1000.exe" > "bin/test_using_linkedlist_dir_t2_i1000.test/gcc-3.4.4/debug/threading-multi/test_using_linkedlist_dir_t2_i1000.output" 2>&1
+ [ run stm : -bench using_linkedlist -dir -threads 2 -inserts 100 -latm full : : : test_using_linkedlist_dir_full_t2_i100 ]
+ ########### fails
+ [ run stm : -bench using_linkedlist -dir -threads 2 -inserts 100 -latm tm : : : test_using_linkedlist_dir_tm_t2_i100 ]
+ ########### fails
+ [ run stm : -bench using_linkedlist -dir -threads 2 -inserts 100 -latm tx : : : test_using_linkedlist_dir_tx_t2_i100 ]
+
+ ########### fails
+ #[ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm tm : : : test_tx_linear_lock_def_tm_t2_i100 ]
+
+ ;
+
     alias all
- : def dir examples
+ : def dir examples fails_sometimes
     ;


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