|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r59754 - in sandbox/stm/branches/vbe/libs/stm: example/tx test
From: vicente.botet_at_[hidden]
Date: 2010-02-18 18:06:29
Author: viboes
Date: 2010-02-18 18:06:28 EST (Thu, 18 Feb 2010)
New Revision: 59754
URL: http://svn.boost.org/trac/boost/changeset/59754
Log:
Boost.STM/vbe:
* adapt test to bug with commit_and_return
* cleanup
Text files modified:
sandbox/stm/branches/vbe/libs/stm/example/tx/array.cpp | 10 +--
sandbox/stm/branches/vbe/libs/stm/example/tx/bank.cpp | 110 ++++++++++++++++++++++++++++++++++++---
sandbox/stm/branches/vbe/libs/stm/example/tx/list.cpp | 56 ++++++++++----------
sandbox/stm/branches/vbe/libs/stm/example/tx/list_sp.cpp | 50 +++++++++---------
sandbox/stm/branches/vbe/libs/stm/example/tx/numeric.cpp | 107 ++++++++++++++++++++++++++++++++++----
sandbox/stm/branches/vbe/libs/stm/test/Jamfile.v2 | 76 +++++++++++++-------------
6 files changed, 289 insertions(+), 120 deletions(-)
Modified: sandbox/stm/branches/vbe/libs/stm/example/tx/array.cpp
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/example/tx/array.cpp (original)
+++ sandbox/stm/branches/vbe/libs/stm/example/tx/array.cpp 2010-02-18 18:06:28 EST (Thu, 18 Feb 2010)
@@ -22,7 +22,6 @@
using namespace std;
using namespace boost;
-
bool test_array() {
{
int v[2];
@@ -44,7 +43,6 @@
} BOOST_STM_RETRY
return (v[0]==1) && (v[1]==2);
}
-
bool test_array_ptr() {
{
int * v= new int[2];
@@ -54,13 +52,13 @@
++p;
}
stm::tx::pointer<stm::tx::int_t > v;
+ stm::tx::pointer<stm::tx::int_t > p;
BOOST_STM_OUTER_TRANSACTION(_) {
v= BOOST_STM_TX_NEW_ARRAY(_,2, stm::tx::int_t);
- stm::tx::pointer<stm::tx::int_t > p;
p = &v[0];
p = v;
- //++p;
+ ++p;
} BOOST_STM_RETRY
#if 0
@@ -74,7 +72,7 @@
}
#endif
bool res=true;
- BOOST_STM_RETURN(res);
+ return res;
return false;
}
@@ -82,7 +80,7 @@
int test_all() {
int fails=0;
- //fails += !test_array();
+ fails += !test_array();
fails += !test_array_ptr();
return fails;
}
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-02-18 18:06:28 EST (Thu, 18 Feb 2010)
@@ -47,15 +47,17 @@
return amount;
}
int Balance() const {
- BOOST_STM_TRANSACTION(_) {
- BOOST_STM_TX_RETURN(_, balance_);
- } BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return balance_;
+ } BOOST_STM_RETRY_END(_)
return 0;
}
int Nb() const {
return nb_;
}
- std::list<base_transaction_object*>& binds() {return binds_;}
+ std::list<base_transaction_object*>& binds() {
+ return binds_;
+ }
std::list<base_transaction_object*> binds_;
void bind(base_transaction_object* bto) {binds_.push_back(bto);}
@@ -63,6 +65,11 @@
typedef BankAccount account;
+template <typename OSTREAM>
+OSTREAM& operator<<(OSTREAM& os, account const& ) {
+ return os;
+}
+
struct Bank {
std::vector<tx::pointer<BankAccount> > accounts;
int overall_balance() const{
@@ -79,6 +86,11 @@
}
};
+template <typename OSTREAM>
+OSTREAM& operator<<(OSTREAM& os, Bank const& ) {
+ return os;
+}
+
struct Teller {
Teller(tx::pointer<const Bank> b)
: bank_(b){}
@@ -116,6 +128,7 @@
}
tx::pointer<BankAccount> a;
+BankAccount b(1);
//tx::tx_ptr<BankAccount> a;
void account_withdraw_thr() {
thread_initializer thi;
@@ -123,6 +136,11 @@
a->Withdraw(10);
} BOOST_STM_RETRY
}
+void account_withdraw() {
+ BOOST_STM_OUTER_TRANSACTION(_) {
+ a->Withdraw(10);
+ } BOOST_STM_RETRY
+}
void account_deposit_thr() {
thread_initializer thi;
@@ -130,9 +148,45 @@
a->Deposit(10);
} BOOST_STM_RETRY
}
+void account_deposit() {
+ BOOST_STM_OUTER_TRANSACTION(_) {
+ a->Deposit(10);
+ } BOOST_STM_RETRY
+}
+
+int test_account_0() {
+
+ BOOST_STM_OUTER_TRANSACTION(_) {
+ a=BOOST_STM_TX_NEW_PTR(_, BankAccount(2));
+ a->Deposit(10);
+ } BOOST_STM_RETRY
+
+ BOOST_STM_OUTER_TRANSACTION(_) {
+ int res = (a->Balance()==10?0:1);
+ //BUG assertion "pthread_mutex_lock(&lockable)==0&&"synchro::lock<pthread_mutex_t>"" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 46
+ //~ BOOST_STM_TX_DELETE_PTR(_, a.value());
+ BOOST_STM_TX_RETURN(_,res);
+ } BOOST_STM_RETRY
+ return 1;
+}
+
+int test_account_1() {
+
+ BOOST_STM_OUTER_TRANSACTION(_) {
+ a=BOOST_STM_TX_NEW_PTR(_, BankAccount(1));
+ } BOOST_STM_RETRY
+ thread th1(account_withdraw_thr);
+
+ th1.join();
+ BOOST_STM_OUTER_TRANSACTION(_) {
+ int res = (a->Balance()==-10?0:1);
+ //~ BOOST_STM_TX_DELETE_PTR(_, a.value());
+ BOOST_STM_TX_RETURN(_,res);
+ } BOOST_STM_RETRY
+}
+
+int test_account_2() {
-int test_account() {
-
BOOST_STM_OUTER_TRANSACTION(_) {
a=BOOST_STM_TX_NEW_PTR(_, BankAccount(1));
} BOOST_STM_RETRY
@@ -147,12 +201,43 @@
th4.join();
BOOST_STM_OUTER_TRANSACTION(_) {
int res = (a->Balance()==0?0:1);
- BOOST_STM_TX_DELETE_PTR(_, a.value());
+ //~ BOOST_STM_TX_DELETE_PTR(_, a.value());
BOOST_STM_TX_RETURN(_,res);
} BOOST_STM_RETRY
}
-bool test_bank() {
+bool test_bank_1() {
+ string wait;
+
+ //int nr_of_threads=10;
+ int nr_of_accounts=200;
+
+ //cin >> wait;Teller::exit=true;
+ tx::object<Bank> mybank;
+ create_db(address_of(mybank),nr_of_accounts);
+ //cin >> wait;Teller::exit=true;
+
+#if 0
+ Teller t(mybank);
+ t();
+#else
+ Teller t1(address_of(mybank));
+ thread th1(boost::ref(t1));
+ //~ Teller t2(address_of(mybank));
+ //~ thread th2(boost::ref(t2));
+
+ cin >> wait;Teller::exit=true;
+ th1.join();
+ //~ th2.join();
+ BOOST_STM_OUTER_TRANSACTION(_) {
+ address_of(mybank)->print_balance();
+ } BOOST_STM_RETRY
+#endif
+
+ return true;
+}
+
+bool test_bank_2() {
string wait;
//int nr_of_threads=10;
@@ -183,6 +268,7 @@
return true;
}
+
int main() {
transaction::enable_dynamic_priority_assignment();
transaction::do_deferred_updating();
@@ -191,8 +277,12 @@
srand(time(0));
int res=0;
- res+=test_account();
- //res+=test_bank();
+ res+=test_account_0();
+ res+=test_account_1();
+ //BUG assertion "pthread_mutex_lock(&lockable)==0&&"synchro::lock<pthread_mutex_t>"" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 46
+ //~ res+=test_account_2();
+ res+=test_bank_1();
+ res+=test_bank_2();
return res;
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-02-18 18:06:28 EST (Thu, 18 Feb 2010)
@@ -82,9 +82,9 @@
~list() { }
std::size_t size() const {
- BOOST_STM_TRANSACTION(_) {
- BOOST_STM_TX_RETURN(_, size_);
- } BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return size_;
+ } BOOST_STM_RETRY_END(_)
return 0;
}
@@ -92,11 +92,11 @@
// find the location to insert the node. if the value already exists, fail
//--------------------------------------------------------------------------
void insert(const T& val) {
- BOOST_STM_TRANSACTION(_) {
+ BOOST_STM_B_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) break;
prev = curr;
curr = curr->next_;
@@ -105,22 +105,22 @@
prev->next_=BOOST_STM_TX_NEW_PTR(_,list_node<T>(val, curr));
++size_;
}
- } BOOST_STM_RETRY
- catch (...) {
- cerr << __LINE__ << " * insert" << endl;
- }
+ } BOOST_STM_RETRY_END(_)
+ //~ catch (...) {
+ //~ cerr << __LINE__ << " * insert" << endl;
+ //~ }
}
// search function
bool lookup(const T& val) const {
- BOOST_STM_TRANSACTION(_) {
+ BOOST_STM_B_TRANSACTION(_) {
list_node<T> const * curr=head_->next_;
while (curr) {
if (curr->value_ >= val) break;
curr = curr->next_;
}
- BOOST_STM_RETURN((curr) && (curr->value_ == val));
- } BOOST_STM_RETRY
+ return ((curr) && (curr->value_ == val));
+ } BOOST_STM_RETRY_END(_)
return false;
}
@@ -166,16 +166,16 @@
}
}
bool check_size(std::size_t val) {
- BOOST_STM_OUTER_TRANSACTION(_) {
- BOOST_STM_RETURN(l.size()==val);
- } BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return (l.size()==val);
+ } BOOST_STM_RETRY_END(_)
return false;
}
bool check_lookup(int val) {
- BOOST_STM_OUTER_TRANSACTION(_) {
+ BOOST_STM_B_TRANSACTION(_) {
//cerr << " check_lookup " << l.lookup(val) << endl;
- BOOST_STM_RETURN(l.lookup(val));
- } BOOST_STM_RETRY
+ return (l.lookup(val));
+ } BOOST_STM_RETRY_END(_)
return false;
}
@@ -218,9 +218,9 @@
int val = 10;
n.next_=BOOST_STM_TX_NEW_PTR(_,test::list_node<int>(val, 0));
} BOOST_STM_RETRY
- BOOST_STM_TRANSACTION(_) {
- BOOST_STM_RETURN(n.next_->value_==10);
- } BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return (n.next_->value_==10);
+ } BOOST_STM_RETRY_END(_)
return false;
}
@@ -228,9 +228,9 @@
BOOST_STM_TRANSACTION(_) {
n.next_->value_=12;
} BOOST_STM_RETRY
- BOOST_STM_TRANSACTION(_) {
- BOOST_STM_RETURN(n.next_->value_==12);
- } BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return (n.next_->value_==12);
+ } BOOST_STM_RETRY_END(_)
return false;
}
@@ -242,9 +242,9 @@
int val = 10;
prev->next_=BOOST_STM_TX_NEW_PTR(_,test::list_node<int>(val, curr));
} BOOST_STM_RETRY
- BOOST_STM_TRANSACTION(_) {
- BOOST_STM_RETURN(n.next_->value_==10);
- } BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return (n.next_->value_==10);
+ } BOOST_STM_RETRY_END(_)
return false;
}
@@ -255,7 +255,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);
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-02-18 18:06:28 EST (Thu, 18 Feb 2010)
@@ -66,9 +66,9 @@
~list() {}
std::size_t size() const {
- BOOST_STM_TRANSACTION(_) {
- BOOST_STM_TX_RETURN(_, size_);
- } BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return size_;
+ } BOOST_STM_RETRY_END(_)
return 0;
}
@@ -76,11 +76,11 @@
// find the location to insert the node. if the value already exists, fail
//--------------------------------------------------------------------------
void insert(const T& val) {
- BOOST_STM_TRANSACTION(_) {
+ BOOST_STM_B_TRANSACTION(_) {
read_ptr<list_node<T> > prev(_, head_);
read_ptr<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) break;
prev = curr;
curr = curr->next_;
@@ -89,22 +89,22 @@
make_write_ptr<static_poly>(prev)->next_=BOOST_STM_TX_NEW_PTR(_,list_node<T>(val, curr.get()));
++(make_write_ptr<static_poly>(_, this)->size_);
}
- } BOOST_STM_RETRY
- catch (...) {
- cout << __LINE__ << " * insert" << endl;
- }
+ } BOOST_STM_RETRY_END(_)
+ //~ catch (...) {
+ //~ cout << __LINE__ << " * insert" << endl;
+ //~ }
}
// search function
bool lookup(const T& val) const {
- BOOST_STM_TRANSACTION(_) {
+ BOOST_STM_B_TRANSACTION(_) {
read_ptr<list_node<T> > curr(_, head_->next_);
while (curr) {
if (curr->value_ >= val) break;
curr = curr->next_;
}
- BOOST_STM_RETURN((curr) && (curr->value_ == val));
- } BOOST_STM_RETRY
+ return (curr) && (curr->value_ == val);
+ } BOOST_STM_RETRY_END(_)
return false;
}
@@ -153,14 +153,14 @@
}
}
bool check_size(std::size_t val) {
- //BOOST_STM_TRANSACTION(_) {
- BOOST_STM_RETURN(l.size()==val);
- //} BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return (l.size()==val);
+ } BOOST_STM_RETRY_END(_)
return false;
}
bool check_lookup(int val) {
//BOOST_STM_TRANSACTION(_) {
- BOOST_STM_RETURN(l.lookup(val));
+ return (l.lookup(val));
//} BOOST_STM_RETRY
return false;
}
@@ -204,9 +204,9 @@
int val = 10;
n.next_=BOOST_STM_TX_NEW_PTR(_,test::list_node<int>(val, 0));
} BOOST_STM_RETRY
- BOOST_STM_TRANSACTION(_) {
- BOOST_STM_RETURN(n.next_->value_==10);
- } BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return (n.next_->value_==10);
+ } BOOST_STM_RETRY_END(_)
return false;
}
@@ -214,9 +214,9 @@
BOOST_STM_TRANSACTION(_) {
n.next_->value_=12;
} BOOST_STM_RETRY
- BOOST_STM_TRANSACTION(_) {
- BOOST_STM_RETURN(n.next_->value_==12);
- } BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return (n.next_->value_==12);
+ } BOOST_STM_RETRY_END(_)
return false;
}
@@ -228,9 +228,9 @@
int val = 10;
prev->next_=BOOST_STM_TX_NEW_PTR(_,test::list_node<int>(val, curr));
} BOOST_STM_RETRY
- BOOST_STM_TRANSACTION(_) {
- BOOST_STM_RETURN(n.next_->value_==10);
- } BOOST_STM_RETRY
+ BOOST_STM_B_TRANSACTION(_) {
+ return (n.next_->value_==10);
+ } BOOST_STM_RETRY_END(_)
return false;
}
Modified: sandbox/stm/branches/vbe/libs/stm/example/tx/numeric.cpp
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/example/tx/numeric.cpp (original)
+++ sandbox/stm/branches/vbe/libs/stm/example/tx/numeric.cpp 2010-02-18 18:06:28 EST (Thu, 18 Feb 2010)
@@ -11,6 +11,7 @@
//
//////////////////////////////////////////////////////////////////////////////
+#include <iostream>
#include <boost/stm.hpp>
#include <boost/thread.hpp>
#include <vector>
@@ -71,16 +72,31 @@
return false;
}
+bool test_diff() {
+ //thread_initializer thi;
+ BOOST_STM_TRANSACTION(_) {
+ counter=1;
+ counter2=2;
+ BOOST_STM_TX_GOTO(_, label1);
+ counter2=3;
+ } BOOST_STM_RETRY
+ label1:
+ BOOST_STM_TRANSACTION(_) {
+ BOOST_STM_TX_RETURN(_, (counter!=counter2));
+ } BOOST_STM_RETRY
+ return false;
+}
+
bool test_assign() {
//thread_initializer thi;
for(int i=0; i<2;++i)
- BOOST_STM_TRANSACTION_IN_LOOP(_) {
+ BOOST_STM_B_TRANSACTION_IN_LOOP(_) {
counter=1;
counter2=counter;
- BOOST_STM_CONTINUE(_);
+ continue;
counter2=3;
- } BOOST_STM_RETRY
-
+ } BOOST_STM_RETRY_END(_)
+
BOOST_STM_TRANSACTION(_) {
//assert((counter==1) && (counter2==1) && (counter==counter2));
BOOST_STM_TX_RETURN(_, (counter==1) && (counter2==1) && (counter==counter2)) ;
@@ -90,17 +106,78 @@
bool test_less() {
//thread_initializer thi;
- for(;;)
- BOOST_STM_TRANSACTION_IN_LOOP(_) {
+ for(;;) {
+ BOOST_STM_B_TRANSACTION_IN_LOOP(_) {
counter=1;
counter2=2;
- BOOST_STM_BREAK(_);
+ break;
counter2=0;
- } BOOST_STM_RETRY
- BOOST_STM_TRANSACTION(_) {
- //assert(counter<counter2);
- BOOST_STM_TX_RETURN(_, (counter<counter2)) ;
- } BOOST_STM_RETRY
+ } BOOST_STM_RETRY_END(_)
+ }
+ BOOST_STM_B_TRANSACTION(_) {
+ return (counter<counter2) ;
+ } BOOST_STM_RETRY_END(_)
+ return false;
+}
+
+bool test_throw_e() {
+ boost::stm::native_trans<int> x = 0;
+
+ //thread_initializer thi;
+ BOOST_STM_B_TRANSACTION(_) {
+ counter=0; counter2=0;
+ } BOOST_STM_RETRY_END(_)
+
+ try{
+ for(int i=0; i<2;++i) {
+ BOOST_STM_B_TRANSACTION_IN_LOOP(_) {
+ counter=1;
+ throw 1;
+ counter2=3;
+ } BOOST_STM_RETRY_END_IN_LOOP(_)
+ }
+ } catch (...) {}
+
+ BOOST_STM_B_TRANSACTION(_) {
+ return (counter==0) && (counter2==0);
+ } BOOST_STM_RETRY_END(_)
+
+ return false;
+}
+
+
+bool test_assign_e() {
+ //thread_initializer thi;
+ for(int i=0; i<2;++i)
+ BOOST_STM_B_TRANSACTION_IN_LOOP(_) {
+ counter=1;
+ counter2=counter;
+ continue;
+ counter2=3;
+ } BOOST_STM_RETRY_END_IN_LOOP(_)
+
+ BOOST_STM_B_TRANSACTION(_) {
+ return (counter==1) && (counter2==1) && (counter==counter2) ;
+ } BOOST_STM_RETRY_END(_)
+
+ return false;
+}
+
+bool test_less_e() {
+ //thread_initializer thi;
+ for(;;) {
+ BOOST_STM_B_TRANSACTION_IN_LOOP(_)
+ {
+ counter=1;
+ counter2=2;
+ break;
+ counter2=0;
+ } BOOST_STM_RETRY_END_IN_LOOP(_)
+ }
+ BOOST_STM_B_TRANSACTION(_)
+ {
+ return counter<counter2;
+ } BOOST_STM_RETRY_END(_)
return false;
}
@@ -144,8 +221,12 @@
int fails=0;
fails += !check(2);
fails += !test_equal();
+ fails += !test_diff();
fails += !test_assign();
- fails += !test_less();
+ //~ fails += !test_less();
+ fails += !test_assign_e();
+ fails += !test_less_e();
+ fails += !test_throw_e();
fails += !test_le();
fails += !test_const(counter);
return fails;
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-02-18 18:06:28 EST (Thu, 18 Feb 2010)
@@ -82,14 +82,14 @@
########### 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.
+ ########### deadlock.
#[ run stm : -bench lot_example -def -threads 2 -inserts 100 -latm tm : : : lot_example_def_tm_t2_i100 ]
- ########### deadlock.
+ ########### 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 ]
@@ -197,13 +197,13 @@
[ compile-fail ../example/deep_singleton.cpp ]
[ run ../example/singleton.cpp ]
[ run ../example/dyn_poly.cpp ]
-
- #[ run ../example/tx/bank.cpp : : : : tx_bank ]
+
+ [ run ../example/tx/bank.cpp : : : : tx_bank ]
[ run ../example/tx/numeric.cpp ]
[ run ../example/tx/array.cpp ]
[ run ../example/tx/pointer.cpp ]
[ run ../example/tx/list.cpp : : : : tx_list ]
- #[ run ../example/tx/list_sp.cpp : : : : tx_list_sp ]
+ [ run ../example/tx/list_sp.cpp : : : : tx_list_sp ]
;
#alias examples_txw
@@ -229,8 +229,8 @@
[ run ../example/non_tx_counter.cpp ]
;
- alias examples
- : examples_tx
+ alias examples
+ : examples_tx
# examples_txw
# examples_non_tx
;
@@ -244,7 +244,7 @@
;
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 : : : accounts_def_t2_i100 ]
@@ -255,10 +255,7 @@
########### 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
- [ run stm : -bench ll -def -threads 2 -inserts 100 -latm tx : : : ll_def_tx_t2_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 ]
@@ -266,12 +263,6 @@
########### fails sometimes
[ run stm : -bench rbtree -def -threads 4 -inserts 100 : : : rbtree_def_t4_i100 ]
- ########### fails sometimes 19:00 091107
- [ run stm : -bench ll -dir -threads 2 -inserts 100 -latm tx : : : ll_dir_t2_tx_i100 ]
-
- ########### fails sometimes
- [ run stm : -bench ll -dir -threads 4 -inserts 100 -latm tx : : : ll_dir_t4_tx_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
@@ -285,14 +276,23 @@
#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 ]
;
-
+
alias failures
- :
+ :
+ ########### fails sometimes
+ [ run stm : -bench ll -dir -threads 4 -inserts 100 -latm tx : : : ll_dir_t4_tx_i100 ]
+
+ ########### fails sometimes 19:00 091107
+ [ run stm : -bench ll -dir -threads 2 -inserts 100 -latm tx : : : ll_dir_t2_tx_i100 ]
+
+ ########### fails sometimes
+ [ run stm : -bench ll -def -threads 2 -inserts 100 -latm tx : : : ll_def_tx_t2_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
+ ########### fails
[ run stm : -bench lit_example -def -threads 2 -inserts 100 -latm tm : : : lit_example_def_tm_t2_i100 ]
########### fails
@@ -305,12 +305,12 @@
# assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
[ run stm : -bench ll -def -threads 2 -inserts 100 -latm full : : : ll_def_full_t2_i100 ]
-
+
########### fails all-modes
# assertion "res==0" failed: file "../../../boost/synchro/pthread/mutex.hpp", line 40
# 19469 [sig] 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 : : : tx_linear_lock_def_full_t2_i100 ]
-
+
########### fails
[ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm tx : : : tx_linear_lock_def_tx_t2_i100 ]
@@ -318,7 +318,7 @@
# /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 ]
@@ -343,7 +343,7 @@
#====== BEGIN OUTPUT ======
#61 i= 0
#66 i=0 end= 50 count= 1
- #70 lock
+ #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
@@ -352,13 +352,13 @@
########### 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
[ run stm : -bench using_linkedlist -def -threads 2 -inserts 100 -latm full : : : using_linkedlist_def_full_t2_i100 ]
-
+
########### fails
[ run stm : -bench using_linkedlist -def -threads 2 -inserts 100 -latm tm : : : using_linkedlist_def_tm_t2_i100 ]
########### fails
[ run stm : -bench using_linkedlist -def -threads 2 -inserts 100 -latm tx : : : 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 : : : hashmap_w_locks_def_full_t2_i100 ]
@@ -367,7 +367,7 @@
[ run stm : -bench hashmap_w_locks -def -threads 2 -inserts 100 -latm tm : : : hashmap_w_locks_def_tm_t2_i100 ]
########### fails
[ run stm : -bench hashmap_w_locks -def -threads 2 -inserts 100 -latm tx : : : 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 : : : list_hash_w_locks_def_full_t2_i100 ]
@@ -376,13 +376,13 @@
#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 ]
- ########### fails
+ ########### fails
[ run stm : -bench tx_linear_lock -dir -threads 2 -inserts 100 -latm tm : : : tx_linear_lock_dir_tm_t2_i100 ]
- ########### fails
+ ########### fails
[ run stm : -bench isolated_composed_int_lock2 -dir -threads 2 -inserts 100 -latm tm : : : isolated_composed_int_lock2_dir_tm_t2_i100 ]
- ########### fails
+ ########### fails
[ 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
@@ -396,21 +396,21 @@
########### fails
[ run stm : -bench tx_linear_lock -def -threads 2 -inserts 100 -latm tm : : : tx_linear_lock_def_tm_t2_i100 ]
- ########### fails
+ ########### fails
[ run stm : -bench isolated_composed_int_lock -dir -threads 2 -inserts 100 -latm tm : : : isolated_composed_int_lock_dir_tm_t2_i100 ]
- ########### fails
+ ########### fails
[ run stm : -bench isolated_composed_int_lock -dir -threads 2 -inserts 100 -latm tx : : : isolated_composed_int_lock_dir_tx_t2_i100 ]
-
- ########### fails
+
+ ########### fails
[ run stm : -bench lit_example -dir -threads 2 -inserts 100 -latm tm : : : lit_example_dir_tm_t2_i100 ]
;
exe perf_counter : ../example/counter.cpp ;
run-output perf_counter.output : perf_counter ;
time perf_counter.time : perf_counter.output ;
-
- alias perf
+
+ alias perf
: perf_counter.time perf_counter.time
;
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