$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r60585 - in sandbox/stm/branches/vbe/libs/stm: example/tx src test
From: vicente.botet_at_[hidden]
Date: 2010-03-14 17:34:11
Author: viboes
Date: 2010-03-14 17:34:10 EDT (Sun, 14 Mar 2010)
New Revision: 60585
URL: http://svn.boost.org/trac/boost/changeset/60585
Log:
Boost.STM/vbe: 
* Updated tests and Jamfile to take care of solved issues
Text files modified: 
   sandbox/stm/branches/vbe/libs/stm/example/tx/bank.cpp    |    12 +-                                      
   sandbox/stm/branches/vbe/libs/stm/example/tx/list.cpp    |    36 +----                                   
   sandbox/stm/branches/vbe/libs/stm/example/tx/list_sp.cpp |    17 +-                                      
   sandbox/stm/branches/vbe/libs/stm/src/transaction.cpp    |    10 +                                       
   sandbox/stm/branches/vbe/libs/stm/test/Jamfile.v2        |   228 ++++++++++++++++++++------------------- 
   5 files changed, 143 insertions(+), 160 deletions(-)
Modified: sandbox/stm/branches/vbe/libs/stm/example/tx/bank.cpp
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/example/tx/bank.cpp	(original)
+++ sandbox/stm/branches/vbe/libs/stm/example/tx/bank.cpp	2010-03-14 17:34:10 EDT (Sun, 14 Mar 2010)
@@ -122,10 +122,10 @@
 
 void create_db(tx::pointer<Bank> b, int nr_of_accounts){
     for(int c=0;c<nr_of_accounts;++c) {
-        BOOST_STM_OUTER_TRANSACTION(_) {
-            tx::pointer<BankAccount> acc(BOOST_STM_TX_NEW_PTR(_, BankAccount(c)));
+        BOOST_STM_E_TRANSACTION {
+            tx::pointer<BankAccount> acc(BOOST_STM_E_NEW_PTR(BankAccount(c)));
             b->accounts.push_back(acc);
-        } BOOST_STM_RETRY
+        } BOOST_STM_E_END_TRANSACTION;
     }
 }
 
@@ -138,7 +138,7 @@
     BOOST_STM_E_TRANSACTION {
         a->Withdraw(10);
     } BOOST_STM_E_END_TRANSACTION;
-    } 
+    }
     CATCH_AND_PRINT_ALL
 }
 void account_withdraw() {
@@ -155,7 +155,7 @@
         a->Deposit(10);
     } BOOST_STM_E_END_TRANSACTION;
     //~ } BOOST_STM_RETRY
-    } 
+    }
     CATCH_AND_PRINT_ALL
 }
 void account_deposit() {
@@ -306,7 +306,7 @@
     res+=test_bank_2();
 
     return res;
-    } 
+    }
     CATCH_AND_PRINT_ALL
 
 }
Modified: sandbox/stm/branches/vbe/libs/stm/example/tx/list.cpp
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/example/tx/list.cpp	(original)
+++ sandbox/stm/branches/vbe/libs/stm/example/tx/list.cpp	2010-03-14 17:34:10 EDT (Sun, 14 Mar 2010)
@@ -100,23 +100,6 @@
     //--------------------------------------------------------------------------
     // find the location to insert the node. if the value already exists, fail
     //--------------------------------------------------------------------------
-    void insert_e(const T& val) {
-        BOOST_STM_TRANSACTION(_) {
-            list_node<T> * prev = head_;
-            list_node<T> * curr = prev->next_;
-            while (curr!=0) {
-                if (curr->value_ == val) BOOST_STM_TX_RETURN_NOTHING(_);
-                //~ if (curr->value_ == val) return;
-                else if (curr->value_ > val) BOOST_STM_BREAK(_);
-                prev = curr;
-                curr = curr->next_;
-            }
-            if (curr==0 || (curr->value_ > val)) {
-                prev->next_=BOOST_STM_TX_NEW_PTR(_,list_node<T>(val, curr));
-                ++size_;
-            }
-        } BOOST_STM_RETRY
-   }
 
     void insert(const T& val) {
         BOOST_STM_E_TRANSACTION {
@@ -190,13 +173,10 @@
 test::list_node<int> n;
 
 void create() {
-    BOOST_STM_OUTER_TRANSACTION(_) {
+    BOOST_STM_E_TRANSACTION {
         cerr << __LINE__ << " create" << endl;
         cerr << " create size " << l.size() << endl;
-    } BOOST_STM_RETRY
-    catch (...) {
-                std::cout << "*** ERROR: "<< __FILE__ << "["<<__LINE__<<"] catch" << std::endl;
-    }
+    } BOOST_STM_E_END_TRANSACTION;
 }
 bool check_size(std::size_t val) {
     BOOST_STM_E_TRANSACTION {
@@ -214,9 +194,9 @@
 
 bool insert(int val) {
     //thread_initializer thi;
-    BOOST_STM_TRANSACTION(_) {
+    BOOST_STM_E_TRANSACTION {
         l.insert(val);
-    }  BOOST_STM_RETRY
+    }  BOOST_STM_E_END_TRANSACTION;
     return check_size(1);
 }
 void insert1_th() {
@@ -229,7 +209,7 @@
 
             l.insert(1);
         }  BOOST_STM_E_END_TRANSACTION;
-    } 
+    }
     CATCH_AND_PRINT_ALL
 }
 void insert2_th() {
@@ -243,7 +223,7 @@
             l.insert(2);
         } BOOST_STM_E_END_TRANSACTION;
     //~ } BOOST_STM_RETRY
-    } 
+    }
     CATCH_AND_PRINT_ALL
 }
 void insert3_th() {
@@ -257,7 +237,7 @@
         l.insert(3);
     } BOOST_STM_E_END_TRANSACTION;
     //~ } BOOST_STM_RETRY
-    } 
+    }
     CATCH_AND_PRINT_ALL
 }
 
@@ -363,7 +343,7 @@
 
 
     return test_all();
-    } 
+    }
     CATCH_AND_PRINT_ALL
 
 }
Modified: sandbox/stm/branches/vbe/libs/stm/example/tx/list_sp.cpp
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/example/tx/list_sp.cpp	(original)
+++ sandbox/stm/branches/vbe/libs/stm/example/tx/list_sp.cpp	2010-03-14 17:34:10 EDT (Sun, 14 Mar 2010)
@@ -144,13 +144,10 @@
 test::list_node<int> n;
 
 void create() {
-    BOOST_STM_TRANSACTION(_) {
+    BOOST_STM_E_TRANSACTION {
         cout << __LINE__ << " create" << endl;
         cout << " create size " << l.size() << endl;
-    } BOOST_STM_RETRY
-    catch (...) {
-                std::cout << "*** ERROR: "<< __FILE__ << "["<<__LINE__<<"] catch" << std::endl;
-    }
+    } BOOST_STM_E_END_TRANSACTION;
 }
 bool check_size(std::size_t val) {
     BOOST_STM_E_TRANSACTION {
@@ -179,7 +176,7 @@
         BOOST_STM_E_TRANSACTION {
             l.insert(1);
         }  BOOST_STM_E_END_TRANSACTION;
-    } 
+    }
     CATCH_AND_PRINT_ALL
 }
 void insert2_th() {
@@ -188,7 +185,7 @@
         BOOST_STM_E_TRANSACTION {
             l.insert(2);
         } BOOST_STM_E_END_TRANSACTION;
-    } 
+    }
     CATCH_AND_PRINT_ALL
 }
 
@@ -205,7 +202,7 @@
         BOOST_STM_E_TRANSACTION {
             l.insert(3);
         } BOOST_STM_E_END_TRANSACTION;
-    } 
+    }
     CATCH_AND_PRINT_ALL
 }
 bool n1() {
@@ -250,7 +247,7 @@
     fails= fails || !n2();
     fails= fails || !n3();
     fails= fails || !check_size(0);
-    //~ //fails= fails || !insert1();
+    //fails= fails || !insert1();
     thread  th1(insert1_th);
     thread  th2(insert2_th);
     thread  th3(insert2_th);
@@ -286,7 +283,7 @@
     thread_initializer thi;
 
     return test_all();
-    } 
+    }
     CATCH_AND_PRINT_ALL
 
 }
Modified: sandbox/stm/branches/vbe/libs/stm/src/transaction.cpp
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/src/transaction.cpp	(original)
+++ sandbox/stm/branches/vbe/libs/stm/src/transaction.cpp	2010-03-14 17:34:10 EDT (Sun, 14 Mar 2010)
@@ -19,7 +19,9 @@
 
 using namespace std;
 //using namespace boost::stm;
-namespace boost { namespace stm {
+namespace boost { 
+boost::mutex log_mutex;
+namespace stm {
 namespace non_tx {
     std::map<void*, base_transaction_object*> detail::cache_map::map_;
 #ifndef BOOST_STM_USE_BOOST_MUTEX
@@ -34,7 +36,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // Static initialization
 ///////////////////////////////////////////////////////////////////////////////
-transaction::InflightTxes transaction::transactionsInFlight_;
+transaction::in_flight_trans_cont transaction::transactionsInFlight_;
 //latm::mutex_set transaction::latmLockedLocks_;
 //latm::mutex_thread_id_set_map transaction::latmLockedLocksAndThreadIdsMap_;
 //latm::mutex_thread_id_map transaction::latmLockedLocksOfThreadMap_;
@@ -483,7 +485,7 @@
 #ifndef MAP_THREAD_MUTEX_CONTAINER
    {
    // realign all in-flight transactions so they are accessing the correct mutex
-   for (InflightTxes::iterator i = transactionsInFlight_.begin();
+   for (in_flight_trans_cont::iterator i = transactionsInFlight_.begin();
       i != transactionsInFlight_.end(); ++i)
    {
       transaction* t = *i;
@@ -526,7 +528,7 @@
 #ifndef MAP_THREAD_BOOL_CONTAINER
    {
    // realign all in-flight transactions so they are accessing the correct mutex
-   for (InflightTxes::iterator i = transactionsInFlight_.begin();
+   for (in_flight_trans_cont::iterator i = transactionsInFlight_.begin();
       i != transactionsInFlight_.end(); ++i)
    {
       transaction* t = *i;
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	2010-03-14 17:34:10 EDT (Sun, 14 Mar 2010)
@@ -53,9 +53,11 @@
 
     alias def_invalid
         :
+            [ run stm : -bench accounts -def -threads 2 -inserts 100 : : : accounts_def_t2_i100 ]
+            [ run stm : -bench accounts -def -threads 4 -inserts 100 : : : accounts_def_t4_i100 ]
+            
             [ run stm : -bench hashmap -def -threads 2 -inserts 100 : : : hashmap_def_t2_i100 ]
 
-
             [ run stm : -bench ht -def -threads 2 -inserts 100 -latm tm : : : ht_def_tm_t2_i100 ]
             [ run stm : -bench ht -def -threads 4 -inserts 100 -latm tm : : : ht_def_tm_t4_i100 ]
             [ run stm : -bench ht -def -threads 2 -inserts 100 -latm tx : : : ht_def_tx_t2_i100 ]
@@ -67,7 +69,6 @@
 
             [ run stm : -bench ll -def -threads 4 -inserts 100 -latm tm : : : ll_def_tm_t4_i100 ]
 
-
             [ run stm : -bench isolated_int_lock_in_tx -def -threads 2 -inserts 100 -latm full : : : isolated_int_lock_in_tx_def_full_t2_i100 ]
             [ run stm : -bench isolated_int_lock_in_tx -def -threads 4 -inserts 100 -latm full : : : isolated_int_lock_in_tx_def_full_t4_i100 ]
             [ run stm : -bench isolated_int_lock_in_tx -def -threads 2 -inserts 100 -latm tm : : : isolated_int_lock_in_tx_def_tm_t2_i100 ]
@@ -76,36 +77,27 @@
             [ run stm : -bench isolated_int_lock_in_tx -def -threads 4 -inserts 100 -latm tx : : : isolated_int_lock_in_tx_def_tx_t4_i100 ]
 
 
-
             [ run stm : -bench irrevocable_int -def -threads 2 -inserts 100 : : : irrevocable_int_def_t2_i100 ]
 
-            ########### deadlock. killed after 0:26. 00% CPU  all-modes
-            #[ run stm : -bench lot_example -def -threads 2 -inserts 100 -latm full : : : lot_example_def_full_t2_i100 ]
-            ########### deadlock.
-            #[ run stm : -bench lot_example -def -threads 2 -inserts 100 -latm tm : : : lot_example_def_tm_t2_i100 ]
-            ########### deadlock.
-            #[ run stm : -bench lot_example -def -threads 2 -inserts 100 -latm tx : : : lot_example_def_tx_t2_i100 ]
-
-            ########### deadlock
-            #[ run stm : -bench lit_example -def -threads 2 -inserts 100 -latm tx : : : lit_example_def_tx_t2_i100 ]
 
+            [ run stm : -bench rbtree -def -threads 2 -inserts 100 : : : rbtree_def_t2_i100 ]
 
-            ########### livelock. killed after 3:50. 50% CPU
-            #[ run stm : -bench nested_tx -def -threads 2 -inserts 100 -latm full : : : nested_tx_def_full_t2_i100 ]
-            ########### livelock
-            #[ run stm : -bench nested_tx -def -threads 2 -inserts 100 -latm tm : : : nested_tx_def_tm_t2_i100 ]
-            ########### livelock
-            #[ run stm : -bench nested_tx -def -threads 2 -inserts 100 -latm tx : : : nested_tx_def_tx_t2_i100 ]
+            [ run stm : -bench list_hash_w_locks -def -threads 2 -inserts 100 -latm tm : : : list_hash_w_locks_def_tm_t2_i100 ]
+            [ run stm : -bench list_hash_w_locks -def -threads 2 -inserts 100 -latm tx : : : list_hash_w_locks_def_tx_t2_i100 ]
+            [ run stm : -bench list_hash_w_locks -def -threads 4 -inserts 100 -latm tx : : : list_hash_w_locks_def_tx_t4_i100 ]
+            
+            [ run stm : -bench ll -def -threads 2 -inserts 100 -latm tm : : : ll_def_tm_t2_i100 ]
 
-            [ run stm : -bench rbtree -def -threads 2 -inserts 100 : : : rbtree_def_t2_i100 ]
+            [ run stm : -bench linkedlist -def -threads 4 -inserts 100 : : : linkedlist_def_t4_i100 ]
 
-            [ run stm : -bench smart -def -threads 4 -inserts 100 : : : smart_def_t4_i100 ]
+            [ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm tx : : : tx_linear_lock_def_tx_t2_i100 ]
 
+            [ run stm : -bench hashmap -def -threads 4 -inserts 100 : : : hashmap_def_t4_i100 ]
 
+            [ run stm : -bench irrevocable_int -def -threads 4 -inserts 100 : : : irrevocable_int_def_t4_i100 ]
 
-            [ run stm : -bench list_hash_w_locks -def -threads 2 -inserts 100 -latm tm : : : list_hash_w_locks_def_tm_t2_i100 ]
-            [ run stm : -bench list_hash_w_locks -def -threads 2 -inserts 100 -latm tx : : : list_hash_w_locks_def_tx_t2_i100 ]
-            [ run stm : -bench list_hash_w_locks -def -threads 4 -inserts 100 -latm tx : : : list_hash_w_locks_def_tx_t4_i100 ]
+            [ run stm : -bench rbtree -def -threads 4 -inserts 100 : : : rbtree_def_t4_i100 ]
+            
     ;
 
     alias dir_invalid
@@ -130,15 +122,7 @@
             [ run stm : -bench ll -dir -threads 2 -inserts 100 -latm tm : : : ll_dir_t2_tm_i100 ]
             [ run stm : -bench ll -dir -threads 4 -inserts 100 -latm tm : : : ll_dir_t4_tm_i100 ]
 
-            ########### fails with CHECK  all-modes
-            #/bin/sh: line 4:  3764 Aborted                 (core dumped) "bin/tx_linear_lock_dir_t2.test/gcc-3.4.4/debug/threading-multi/tx_linear_lock_dir_t2.exe" > "bin/tx_linear_lock_dir_t2.test/gcc-3.4.4/debug/threading-multi/tx_linear_lock_dir_t2.output" 2>&1
-            #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
-            ########### deadlock. without CHECK 2010/02/22
             [ run stm : -bench tx_linear_lock -dir -threads 2 -inserts 100 -latm full : : : tx_linear_lock_dir_full_t2_i100 ]
-            ########### deadlock
-            #[ run stm : -bench tx_linear_lock -dir -threads 4 -inserts 100 -latm full : : : tx_linear_lock_dir_full_t4_i100 ]
-            ########### deadlock
-            #[ run stm : -bench tx_linear_lock -dir -threads 2 -inserts 100 -latm tx : : : tx_linear_lock_dir_tx_t2_i100 ]
 
             [ run stm : -bench isolated_int_lock_in_tx -dir -threads 2 -inserts 100 -latm full : : : isolated_int_lock_in_tx_dir_full_t2_i100 ]
             [ run stm : -bench isolated_int_lock_in_tx -dir -threads 4 -inserts 100 -latm full : : : isolated_int_lock_in_tx_dir_full_t4_i100 ]
@@ -147,35 +131,15 @@
             [ run stm : -bench isolated_int_lock_in_tx -dir -threads 2 -inserts 100 -latm tx : : : isolated_int_lock_in_tx_dir_tx_t2_i100 ]
             [ run stm : -bench isolated_int_lock_in_tx -dir -threads 4 -inserts 100 -latm tx : : : isolated_int_lock_in_tx_dir_tx_t4_i100 ]
 
-            ########### deadlock. killed after 0:20. 00% CPU  all-modes  all-modes
-            #[ run stm : -bench isolated_composed_int_lock -dir -threads 2 -inserts 100 -latm full : : : isolated_composed_int_lock_dir_full_t2_i100 ]
 
             [ run stm : -bench isolated_composed_int_lock2 -dir -threads 2 -inserts 100  -latm tx : : : isolated_composed_int_lock2_dir_tx_t2_i100 ]
+            [ run stm : -bench isolated_composed_int_lock2 -dir -threads 2 -inserts 100  -latm full : : : isolated_composed_int_lock2_dir_full_t2_i100 ]
 
             [ run stm : -bench irrevocable_int -dir -threads 4 -inserts 100 : : : irrevocable_int_dir_t4_i100 ]
 
-            ########### deadlock. killed after 0:20. 00% CPU  all-modes
-            #[ run stm : -bench lot_example -dir -threads 2 -inserts 100 -latm full : : : lot_example_dir_full_t2_i100 ]
-            ########### deadlock
-            #[ run stm : -bench lot_example -dir -threads 2 -inserts 100 -latm tm : : : lot_example_dir_tm_t2_i100 ]
-            ########### deadlock
-            #[ run stm : -bench lot_example -dir -threads 2 -inserts 100 -latm tx : : : lot_example_dir_tx_t2_i100 ]
-
-            ########### deadlock. killed after 0:40. 00% CPU  all-modes
-            #[ run stm : -bench lit_example -dir -threads 2 -inserts 100 -latm full : : : lit_example_dir_full_t2_i100 ]
-            ########### deadlock
-            #[ run stm : -bench lit_example -dir -threads 2 -inserts 100 -latm tx : : : lit_example_dir_tx_t2_i100 ]
-
-            ########### livelock. killed after 3:00. 50% CPU
-            #[ run stm : -bench nested_tx -dir -threads 2 -inserts 100 -latm full : : : nested_tx_dir_full_t2_i100 ]
-            #[ run stm : -bench nested_tx -dir -threads 2 -inserts 100 -latm tm : : : nested_tx_dir_tm_t2_i100 ]
-            #[ run stm : -bench nested_tx -dir -threads 2 -inserts 100 -latm tx : : : nested_tx_dir_tx_t2_i100 ]
 
             [ run stm : -bench rbtree -dir -threads 4 -inserts 100 : : : rbtree_dir_t4_i100 ]
-
-            [ run stm : -bench smart -dir -threads 4 -inserts 100 : : : smart_dir_t4_i100 ]
-
-
+            
             [ run stm : -bench hashmap_w_locks -dir -threads 4 -inserts 100 -latm full : : : hashmap_w_locks_dir_full_t4_i100 ]
             [ run stm : -bench hashmap_w_locks -dir -threads 4 -inserts 100 -latm tm : : : hashmap_w_locks_dir_tm_t4_i100 ]
             [ run stm : -bench hashmap_w_locks -dir -threads 4 -inserts 100 -latm tx : : : hashmap_w_locks_dir_tx_t4_i100 ]
@@ -187,12 +151,15 @@
             [ run stm : -bench using_linkedlist -dir -threads 2 -inserts 100 -latm full : : : using_linkedlist_dir_full_t2_i100 ]
             [ run stm : -bench using_linkedlist -dir -threads 2 -inserts 100 -latm tm : : : using_linkedlist_dir_tm_t2_i100 ]
             [ run stm : -bench using_linkedlist -dir -threads 2 -inserts 100 -latm tx : : : using_linkedlist_dir_tx_t2_i100 ]
-            
+
+
+
     ;
 
     alias embedded
         :
             [ run-fail ../example/embed.cpp ]
+            #[ run ../example/property_test.cpp ]
     ;
 
     alias examples_tx
@@ -202,7 +169,11 @@
             [ run ../example/dyn_poly.cpp ]
             [ run ../example/multiple_inheritance.cpp ]
 
+            ######## failed 2010/03/14
+            ######## assertion "false&&"tx type not found"" failed: file "../../../boost/stm/detail/transaction_impl.hpp", line 231
             [ run ../example/tx/bank.cpp : : : : tx_bank ]
+            ######## failed 2010/03/14
+            ######## assertion "pthread_mutex_unlock(&lockable)==0&&"synchro::unlock<pthread_mutex_t>"" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 53
             [ run ../example/tx/numeric.cpp ]
             [ run ../example/tx/array.cpp ]
             [ run ../example/tx/pointer.cpp ]
@@ -249,71 +220,37 @@
 
     alias fails_sometimes
         :
-            ########### deadlock sometimes. 2010/02/22
-            [ run stm : -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm tx : : : isolated_composed_int_lock2_def_tx_t2_i100 ]
-        
-            ########### fails sometimes 17:27 091003
-            #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
-            [ run stm : -bench hashmap -def -threads 4 -inserts 100 : : : hashmap_def_t4_i100 ]
-
-            ###########  fails sometimes 18:56 091003
-            #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
-            [ run stm : -bench irrevocable_int -def -threads 4 -inserts 100 : : : irrevocable_int_def_t4_i100 ]
-
-            ########### fails sometimes
-            [ run stm : -bench rbtree -def -threads 4 -inserts 100 : : : rbtree_def_t4_i100 ]
-
-            ###########  fails
-            # /bin/sh: line 4:  3172 Aborted                 (core dumped) "bin/isolated_composed_int_lock2_dir_t2.test/gcc-3.4.4/debug/threading-multi/isolated_composed_int_lock2_dir_t2.exe" > "bin/isolated_composed_int_lock2_dir_t2.test/gcc-3.4.4/debug/threading-multi/isolated_composed_int_lock2_dir_t2.output" 2>&1
-            #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
-            #      11 [sig] 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 : : : isolated_composed_int_lock2_dir_full_t2_i100 ]
-
-            ########### fails sometimes
-            [ run stm : -bench ll -def -threads 2 -inserts 100 -latm tm : : : ll_def_tm_t2_i100 ]
-
-            ########### fails sometimes
-            #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
-            [ run stm : -bench linkedlist -def -threads 4 -inserts 100 : : : linkedlist_def_t4_i100 ]
+            # all worked several times without failure at 2010/03/14
+            
 
-            ########### fails sometimes
-            [ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm tx : : : tx_linear_lock_def_tx_t2_i100 ]
 
-            ########### fails sometimes
+        ;
+        
+    alias fails_often
+        :
+            # all failed at 2010/03/14 several times
+            ########### fails sometimes 3 times 2010/03/14 succeed 2010/03/14 
             [ run stm : -bench ll -dir -threads 4 -inserts 100 -latm tx : : : ll_dir_t4_tx_i100 ]
 
-            ########### fails sometimes 19:00 091107
+            ########### fails 3 consecutive times  2010/03/14 suceeded at 2010/??/??
             [ run stm : -bench ll -dir -threads 2 -inserts 100 -latm tx : : : ll_dir_t2_tx_i100 ]
 
-            ########### fails often
+            ########### fails often 2010/03/14  suceeded at 2010/??/??
             [ run stm : -bench ll -def -threads 2 -inserts 100 -latm tx : : : ll_def_tx_t2_i100 ]
 
+            ########### deadlock sometimes. 2010/02/22
+            [ run stm : -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm tx : : : isolated_composed_int_lock2_def_tx_t2_i100 ]
+
     ;
 
-    alias failures
+    alias fails_always
         :
-            ########### fails since revison 2010/02/22
-            #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
-            [ run stm : -bench accounts -def -threads 2 -inserts 100 : : : accounts_def_t2_i100 ]
-            ########### fails since revison 2010/02/22
-            #assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 52
-            #[ run stm : -bench accounts -def -threads 4 -inserts 100 : : : accounts_def_t4_i100 ]
-
-
-            ########### fails with CHECK  all-modes
-            # /bin/sh: line 4:  4072 Aborted                 (core dumped) "bin/lit_def_t2.test/gcc-3.4.4/debug/threading-multi/lit_def_t2.exe" > "bin/lit_def_t2.test/gcc-3.4.4/debug/threading-multi/lit_def_t2.output" 2>&1
-            ########### deadlock sometimes without CHECK. killed after 0:40. 00% CPU
-            [ run stm : -bench lit_example -def -threads 2 -inserts 100 -latm full : : : lit_example_def_full_t2_i100 ]
-            ########### fails
-            [ run stm : -bench lit_example -def -threads 2 -inserts 100 -latm tm : : : lit_example_def_tm_t2_i100 ]
-            ########### fails
-            [ run stm : -bench lit_example -dir -threads 2 -inserts 100 -latm tm : : : lit_example_dir_tm_t2_i100 ]
-
+            
             ########### fails
             # /bin/sh: line 4:  2944 Aborted                 (core dumped) "bin/ht_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/ht_def_t2_i1000.exe" > "bin/ht_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/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 : : : ht_def_full_t2_i100 ]
+            #[ run stm : -bench ht -def -threads 2 -inserts 100 -latm full : : : ht_def_full_t2_i100 ]
 
             ########### fails
             # assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
@@ -327,23 +264,22 @@
             [ run stm : -bench tx_linear_lock -dir -threads 2 -inserts 100 -latm tm : : : tx_linear_lock_dir_tm_t2_i100 ]
             ########### fails
             [ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm tm : : : tx_linear_lock_def_tm_t2_i100 ]
-
+            
             ###########  fails all-modes
             # /bin/sh: line 4:  3660 Segmentation fault      (core dumped) "bin/isolated_composed_int_lock_def_t2.test/gcc-3.4.4/debug/threading-multi/isolated_composed_int_lock_def_t2.exe" > "bin/isolated_composed_int_lock_def_t2.test/gcc-3.4.4/debug/threading-multi/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 : : : 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/isolated_composed_int_lock_def_tm_t2_i100.test/gcc-3.4.4/debug/threading-multi/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 : : : isolated_composed_int_lock_def_tm_t2_i100 ]
+            [ run stm : -bench isolated_composed_int_lock -def -threads 2 -inserts 100 -latm tm : : : 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/isolated_composed_int_lock_def_tx_t2_i100.test/gcc-3.4.4/debug/threading-multi/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 : : : isolated_composed_int_lock_def_tx_t2_i100 ]
             ########### fails
-            [ run stm : -bench isolated_composed_int_lock -dir -threads 2 -inserts 100 -latm tm : : : isolated_composed_int_lock_dir_tm_t2_i100 ]
-            ########### fails
             [ run stm : -bench isolated_composed_int_lock -dir -threads 2 -inserts 100 -latm tx : : : isolated_composed_int_lock_dir_tx_t2_i100 ]
-
-            ###########  deadlock
+            ########### fails
+            [ run stm : -bench isolated_composed_int_lock -dir -threads 2 -inserts 100 -latm tm : : : isolated_composed_int_lock_dir_tm_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/isolated_composed_int_lock2_def_full_t2_i100.test/gcc-3.4.4/debug/threading-multi/isolated_composed_int_lock2_def_full_t2_i100.output" 2>&1
             #====== BEGIN OUTPUT ======
             #61 i= 0
@@ -361,11 +297,12 @@
             #70 lock
             [ run stm : -bench isolated_composed_int_lock2 -def -threads 2 -inserts 100 -latm tm : : : isolated_composed_int_lock2_def_tm_t2_i100 ]
             ###########  fails
-            #[ run stm : -bench isolated_composed_int_lock2 -def -threads 4 -inserts 100 -latm tx : : : isolated_composed_int_lock2_def_tx_t4_i100 ]
+            [ run stm : -bench isolated_composed_int_lock2 -def -threads 4 -inserts 100 -latm tx : : : isolated_composed_int_lock2_def_tx_t4_i100 ]
+
             ########### fails
             [ run stm : -bench isolated_composed_int_lock2 -dir -threads 2 -inserts 100  -latm tm : : : isolated_composed_int_lock2_dir_tm_t2_i100 ]
             ########### fails
-            #[ run stm : -bench isolated_composed_int_lock2 -dir -threads 4 -inserts 100  -latm tx : : : isolated_composed_int_lock2_dir_tx_t4_i100 ]
+            [ run stm : -bench isolated_composed_int_lock2 -dir -threads 4 -inserts 100  -latm tx : : : isolated_composed_int_lock2_dir_tx_t4_i100 ]
 
             ########### fails all-modes
             # /bin/sh: line 4:  2376 Aborted                 (core dumped) "bin/using_linkedlist_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/using_linkedlist_def_t2_i1000.exe" > "bin/using_linkedlist_def_t2_i1000.test/gcc-3.4.4/debug/threading-multi/using_linkedlist_def_t2_i1000.output" 2>&1
@@ -391,6 +328,73 @@
             #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 : : : list_hash_w_locks_def_tm_t4_i100 ]
 
+        ;
+
+    alias deadlock
+        :
+        
+        
+            ########### deadlock after 3:14 at 2010/03/14 (blocks bjam)
+            #[ run stm : -bench smart -def -threads 4 -inserts 100 : : : smart_def_t4_i100 ]
+            ########### fails with CHECK  all-modes
+            # /bin/sh: line 4:  4072 Aborted                 (core dumped) "bin/lit_def_t2.test/gcc-3.4.4/debug/threading-multi/lit_def_t2.exe" > "bin/lit_def_t2.test/gcc-3.4.4/debug/threading-multi/lit_def_t2.output" 2>&1
+            ########### deadlock sometimes without CHECK. killed after 0:40. 00% CPU
+            #[ run stm : -bench lit_example -def -threads 2 -inserts 100 -latm full : : : lit_example_def_full_t2_i100 ]
+            ########### fails
+            #[ run stm : -bench lit_example -def -threads 2 -inserts 100 -latm tm : : : lit_example_def_tm_t2_i100 ]
+            ########### fails
+            #[ run stm : -bench lit_example -dir -threads 2 -inserts 100 -latm tm : : : lit_example_dir_tm_t2_i100 ]
+        ;
+        
+    alias livelock
+        :
+
+            ########### deadlock. killed after 0:26. 00% CPU  all-modes
+            #[ run stm : -bench lot_example -def -threads 2 -inserts 100 -latm full : : : lot_example_def_full_t2_i100 ]
+            ########### deadlock.
+            #[ run stm : -bench lot_example -def -threads 2 -inserts 100 -latm tm : : : lot_example_def_tm_t2_i100 ]
+            ########### deadlock.
+            #[ run stm : -bench lot_example -def -threads 2 -inserts 100 -latm tx : : : lot_example_def_tx_t2_i100 ]
+
+            ########### deadlock
+            #[ run stm : -bench lit_example -def -threads 2 -inserts 100 -latm tx : : : lit_example_def_tx_t2_i100 ]
+
+
+            ########### livelock. killed after 3:50. 50% CPU
+            #[ run stm : -bench nested_tx -def -threads 2 -inserts 100 -latm full : : : nested_tx_def_full_t2_i100 ]
+            ########### livelock
+            #[ run stm : -bench nested_tx -def -threads 2 -inserts 100 -latm tm : : : nested_tx_def_tm_t2_i100 ]
+            ########### livelock
+            #[ run stm : -bench nested_tx -def -threads 2 -inserts 100 -latm tx : : : nested_tx_def_tx_t2_i100 ]
+
+            ########### deadlock 2010/03/14
+            #[ run stm : -bench tx_linear_lock -dir -threads 4 -inserts 100 -latm full : : : tx_linear_lock_dir_full_t4_i100 ]
+
+            ########### deadlock
+            #[ run stm : -bench tx_linear_lock -dir -threads 2 -inserts 100 -latm tx : : : tx_linear_lock_dir_tx_t2_i100 ]
+
+            ########### deadlock. killed after 0:20. 00% CPU  all-modes  all-modes
+            #[ run stm : -bench isolated_composed_int_lock -dir -threads 2 -inserts 100 -latm full : : : isolated_composed_int_lock_dir_full_t2_i100 ]
+            
+            ########### deadlock. killed after 0:20. 00% CPU  all-modes
+            #[ run stm : -bench lot_example -dir -threads 2 -inserts 100 -latm full : : : lot_example_dir_full_t2_i100 ]
+            ########### deadlock
+            #[ run stm : -bench lot_example -dir -threads 2 -inserts 100 -latm tm : : : lot_example_dir_tm_t2_i100 ]
+            ########### deadlock
+            #[ run stm : -bench lot_example -dir -threads 2 -inserts 100 -latm tx : : : lot_example_dir_tx_t2_i100 ]
+
+            ########### deadlock. killed after 0:40. 00% CPU  all-modes
+            #[ run stm : -bench lit_example -dir -threads 2 -inserts 100 -latm full : : : lit_example_dir_full_t2_i100 ]
+            ########### deadlock
+            #[ run stm : -bench lit_example -dir -threads 2 -inserts 100 -latm tx : : : lit_example_dir_tx_t2_i100 ]
+
+            ########### livelock. killed after 3:00. 50% CPU
+            #[ run stm : -bench nested_tx -dir -threads 2 -inserts 100 -latm full : : : nested_tx_dir_full_t2_i100 ]
+            #[ run stm : -bench nested_tx -dir -threads 2 -inserts 100 -latm tm : : : nested_tx_dir_tm_t2_i100 ]
+            #[ run stm : -bench nested_tx -dir -threads 2 -inserts 100 -latm tx : : : nested_tx_dir_tx_t2_i100 ]
+            
+            # deadlock
+            #[ run stm : -bench smart -dir -threads 4 -inserts 100 : : : smart_dir_t4_i100 ]
     ;
 
     exe perf_counter : ../example/counter.cpp ;