|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r59843 - in sandbox/stm/branches/vbe/libs/stm: example/tx test
From: vicente.botet_at_[hidden]
Date: 2010-02-22 06:04:38
Author: viboes
Date: 2010-02-22 06:04:37 EST (Mon, 22 Feb 2010)
New Revision: 59843
URL: http://svn.boost.org/trac/boost/changeset/59843
Log:
Boost.STM/vbe:
* Adapt examples to language-like macros interface changes
Text files modified:
sandbox/stm/branches/vbe/libs/stm/example/tx/bank.cpp | 25 ++++----
sandbox/stm/branches/vbe/libs/stm/example/tx/counter_ptr.cpp | 4
sandbox/stm/branches/vbe/libs/stm/example/tx/list.cpp | 62 +++++++++++-----------
sandbox/stm/branches/vbe/libs/stm/example/tx/list_sp.cpp | 52 +++++++++---------
sandbox/stm/branches/vbe/libs/stm/example/tx/numeric.cpp | 105 +++++++++++++++++++++------------------
sandbox/stm/branches/vbe/libs/stm/test/Jamfile.v2 | 14 ++--
6 files changed, 136 insertions(+), 126 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-02-22 06:04:37 EST (Mon, 22 Feb 2010)
@@ -47,9 +47,10 @@
return amount;
}
int Balance() const {
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, balance_);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(balance_);
+ } BOOST_STM_E_END_TRANSACTION
+
return 0;
}
int Nb() const {
@@ -161,12 +162,12 @@
a->Deposit(10);
} BOOST_STM_RETRY
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_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_E_RETURN(_, res);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_RETURN(res);
+ } BOOST_STM_E_END_TRANSACTION
return 1;
}
@@ -178,11 +179,11 @@
thread th1(account_withdraw_thr);
th1.join();
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
int res = (a->Balance()==-10?0:1);
//~ BOOST_STM_TX_DELETE_PTR(_, a.value());
- BOOST_STM_E_RETURN(_, res);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_RETURN(res);
+ } BOOST_STM_E_END_TRANSACTION
return 1;
}
@@ -200,11 +201,11 @@
th2.join();
th3.join();
th4.join();
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
int res = (a->Balance()==0?0:1);
//~ BOOST_STM_TX_DELETE_PTR(_, a.value());
- BOOST_STM_E_RETURN(_, res);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_RETURN(res);
+ } BOOST_STM_E_END_TRANSACTION
return 1;
}
Modified: sandbox/stm/branches/vbe/libs/stm/example/tx/counter_ptr.cpp
==============================================================================
--- sandbox/stm/branches/vbe/libs/stm/example/tx/counter_ptr.cpp (original)
+++ sandbox/stm/branches/vbe/libs/stm/example/tx/counter_ptr.cpp 2010-02-22 06:04:37 EST (Mon, 22 Feb 2010)
@@ -96,10 +96,10 @@
#endif
int test_counter() {
- atomic(_) {
+ BOOST_STM_OUTER_TRANSACTION(_) {
write_ptr<tx_int_ptr> tx_counter_ptr_ptr(_, counter_ptr);
*tx_counter_ptr_ptr=BOOST_STM_TX_NEW_PTR(_, tx_int());
- } end_atom
+ } BOOST_STM_RETRY
thread th1(inc);
thread th2(decr);
thread th3(inc);
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-22 06:04:37 EST (Mon, 22 Feb 2010)
@@ -82,15 +82,15 @@
~list() { }
std::size_t size() const {
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_,size_);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(size_);
+ } BOOST_STM_E_END_TRANSACTION
//~ BOOST_STM_TRANSACTION(_) {
//~ BOOST_STM_RETURN(_, size_);
//~ } BOOST_STM_RETRY
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_,size_);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(size_);
+ } BOOST_STM_E_END_TRANSACTION
//~ BOOST_STM_TRANSACTION(_) {
//~ BOOST_STM_RETURN(_, size_);
//~ } BOOST_STM_RETRY
@@ -101,21 +101,21 @@
// find the location to insert the node. if the value already exists, fail
//--------------------------------------------------------------------------
void insert(const T& val) {
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
list_node<T> * prev = head_;
list_node<T> * curr = prev->next_;
while (curr!=0) {
- if (curr->value_ == val) BOOST_STM_E_RETURN_NOTHING(_);
+ if (curr->value_ == val) BOOST_STM_E_RETURN_NOTHING;
//~ if (curr->value_ == val) return;
else if (curr->value_ > val) break;
prev = curr;
curr = curr->next_;
}
if (curr==0 || (curr->value_ > val)) {
- prev->next_=BOOST_STM_TX_NEW_PTR(_,list_node<T>(val, curr));
+ prev->next_=BOOST_STM_E_NEW_PTR(list_node<T>(val, curr));
++size_;
}
- } BOOST_STM_E_END_TRANSACTION(_)
+ } BOOST_STM_E_END_TRANSACTION
//~ catch (...) {
//~ cerr << __LINE__ << " * insert" << endl;
//~ }
@@ -123,14 +123,14 @@
// search function
bool lookup(const T& val) const {
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
list_node<T> const * curr=head_->next_;
while (curr) {
if (curr->value_ >= val) break;
curr = curr->next_;
}
- BOOST_STM_E_RETURN(_, ((curr) && (curr->value_ == val)));
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_RETURN((curr) && (curr->value_ == val));
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -176,16 +176,16 @@
}
}
bool check_size(std::size_t val) {
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, (l.size()==val));
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(l.size()==val);
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
bool check_lookup(int val) {
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
//cerr << " check_lookup " << l.lookup(val) << endl;
- BOOST_STM_E_RETURN(_, (l.lookup(val)));
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_RETURN(l.lookup(val));
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -228,9 +228,9 @@
int val = 10;
n.next_=BOOST_STM_TX_NEW_PTR(_,test::list_node<int>(val, 0));
} BOOST_STM_RETRY
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, (n.next_->value_==10));
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(n.next_->value_==10);
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -238,9 +238,9 @@
BOOST_STM_TRANSACTION(_) {
n.next_->value_=12;
} BOOST_STM_RETRY
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, (n.next_->value_==12));
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(n.next_->value_==12);
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -251,9 +251,9 @@
int val = 10;
prev->next_=BOOST_STM_TX_NEW_PTR(_,test::list_node<int>(val, curr));
} BOOST_STM_RETRY
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, (n.next_->value_==10));
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(n.next_->value_==10);
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -277,7 +277,7 @@
fails= fails || check_lookup(2);
fails= fails || !check_lookup(3);
fails= fails || !check_size(2);
-
+
return !fails;
}
@@ -294,9 +294,9 @@
fails= fails || !check_size(0);
fails= fails || !remove(2);
fails= fails || !check_size(0);
-
+
fails= fails || !test_par();
-
+
return fails;
}
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-22 06:04:37 EST (Mon, 22 Feb 2010)
@@ -66,9 +66,9 @@
~list() {}
std::size_t size() const {
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, size_);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(size_);
+ } BOOST_STM_E_END_TRANSACTION
return 0;
}
@@ -76,9 +76,9 @@
// find the location to insert the node. if the value already exists, fail
//--------------------------------------------------------------------------
void insert(const T& val) {
- BOOST_STM_E_TRANSACTION(_) {
- read_ptr<list_node<T> > prev(_, head_);
- read_ptr<list_node<T> > curr(_, prev->next_);
+ BOOST_STM_E_TRANSACTION {
+ read_ptr<list_node<T> > prev(BOOST_STM_CURRENT, head_);
+ read_ptr<list_node<T> > curr(BOOST_STM_CURRENT, prev->next_);
while (curr!=0) {
if (curr->value_ == val) return;
else if (curr->value_ > val) break;
@@ -86,22 +86,22 @@
curr = curr->next_;
}
if (curr==0 || (curr->value_ > val)) {
- 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_);
+ make_write_ptr<static_poly>(prev)->next_=BOOST_STM_E_NEW_PTR(list_node<T>(val, curr.get()));
+ ++(make_write_ptr<static_poly>(BOOST_STM_CURRENT, this)->size_);
}
- } BOOST_STM_E_END_TRANSACTION(_)
+ } BOOST_STM_E_END_TRANSACTION
}
// search function
bool lookup(const T& val) const {
- BOOST_STM_E_TRANSACTION(_) {
- read_ptr<list_node<T> > curr(_, head_->next_);
+ BOOST_STM_E_TRANSACTION {
+ read_ptr<list_node<T> > curr(BOOST_STM_CURRENT, head_->next_);
while (curr) {
if (curr->value_ >= val) break;
curr = curr->next_;
}
- return (curr) && (curr->value_ == val);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_RETURN((curr) && (curr->value_ == val));
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -150,9 +150,9 @@
}
}
bool check_size(std::size_t val) {
- BOOST_STM_E_TRANSACTION(_) {
- return (l.size()==val);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(l.size()==val);
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
bool check_lookup(int val) {
@@ -201,9 +201,9 @@
int val = 10;
n.next_=BOOST_STM_TX_NEW_PTR(_,test::list_node<int>(val, 0));
} BOOST_STM_RETRY
- BOOST_STM_E_TRANSACTION(_) {
- return (n.next_->value_==10);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN (n.next_->value_==10);
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -211,9 +211,9 @@
BOOST_STM_TRANSACTION(_) {
n.next_->value_=12;
} BOOST_STM_RETRY
- BOOST_STM_E_TRANSACTION(_) {
- return (n.next_->value_==12);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN (n.next_->value_==12);
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -225,9 +225,9 @@
int val = 10;
prev->next_=BOOST_STM_TX_NEW_PTR(_,test::list_node<int>(val, curr));
} BOOST_STM_RETRY
- BOOST_STM_E_TRANSACTION(_) {
- return (n.next_->value_==10);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN (n.next_->value_==10);
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -248,7 +248,7 @@
th2.join();
th3.join();
th4.join();
-
+
fails= fails || !check_lookup(1);
fails= fails || !check_lookup(2);
fails= fails || !check_lookup(3);
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-22 06:04:37 EST (Mon, 22 Feb 2010)
@@ -19,7 +19,16 @@
#include <list>
#include <iostream>
#include <stdlib.h>
+#include <boost/exception/info.hpp>
+#include <boost/exception/errinfo_errno.hpp>
+#if 0
+struct commiting_exception: virtual boost::exception {
+ boost::exception_ptr
+};
+
+#defined THROW_COMMITG_EXCEPTION(EX)
+#endif
using namespace std;
using namespace boost;
@@ -118,9 +127,9 @@
counter2=0;
} BOOST_STM_END_TRANSACTION_IN_LOOP(_)
}
- BOOST_STM_E_TRANSACTION(_)
- BOOST_STM_E_RETURN(_, (counter<counter2)) ;
- BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION
+ BOOST_STM_E_RETURN(counter<counter2) ;
+ BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -145,20 +154,20 @@
}
bool test_outer_throw_e() {
reset();
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
counter=0;
- } BOOST_STM_E_END_TRANSACTION(_)
+ } BOOST_STM_E_END_TRANSACTION
try{
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
counter=1;
throw 1;
- } BOOST_STM_E_END_TRANSACTION(_)
+ } BOOST_STM_E_END_TRANSACTION
} catch (...) {}
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, (counter==0));
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(counter==0);
+ } BOOST_STM_E_END_TRANSACTION
return true;
}
@@ -167,9 +176,9 @@
bool test_inner_throw() {
reset();
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
counter=0; counter2=0;
- } BOOST_STM_E_END_TRANSACTION(_)
+ } BOOST_STM_E_END_TRANSACTION
try{
BOOST_STM_TRANSACTION(_) {
@@ -192,40 +201,40 @@
bool test_inner_throw_e() {
reset();
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
counter=0; counter2=0;
- } BOOST_STM_E_END_TRANSACTION(_)
+ } BOOST_STM_E_END_TRANSACTION
try{
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
counter=1;
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
counter=2;
throw 1;
- } BOOST_STM_E_END_TRANSACTION(_)
+ } BOOST_STM_E_END_TRANSACTION
counter=3;
- } BOOST_STM_E_END_TRANSACTION(_)
+ } BOOST_STM_E_END_TRANSACTION
} catch (...) {}
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, (counter==0) );
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(counter==0);
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
bool test_nested_e() {
reset();
- BOOST_STM_E_TRANSACTION(_) {
- counter=1;
- BOOST_STM_E_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
+ counter=1;
+ BOOST_STM_E_TRANSACTION {
counter2=2;
- } BOOST_STM_E_END_TRANSACTION(_)
- } BOOST_STM_E_END_TRANSACTION(_)
+ } BOOST_STM_E_END_TRANSACTION
+ } BOOST_STM_E_END_TRANSACTION
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, (counter==1) && (counter2==2));
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN((counter==1) && (counter2==2));
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -233,16 +242,16 @@
bool test_assign_e() {
reset();
for(int i=0; i<2;++i) {
- BOOST_STM_E_TRANSACTION_IN_LOOP(_) {
+ BOOST_STM_E_TRANSACTION_IN_LOOP {
counter=1;
counter2=counter;
continue;
counter2=3;
- } BOOST_STM_E_END_TRANSACTION_IN_LOOP(_)
+ } BOOST_STM_E_END_TRANSACTION_IN_LOOP
}
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, (counter==1) && (counter2==1) && (counter==counter2)) ;
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN((counter==1) && (counter2==1) && (counter==counter2)) ;
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -250,16 +259,16 @@
bool test_less_e() {
reset();
for(;;) {
- BOOST_STM_E_TRANSACTION_IN_LOOP(_) {
+ BOOST_STM_E_TRANSACTION_IN_LOOP {
counter=1;
counter2=2;
break;
counter2=0;
- } BOOST_STM_E_END_TRANSACTION_IN_LOOP(_)
+ } BOOST_STM_E_END_TRANSACTION_IN_LOOP
}
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, counter<counter2);
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(counter<counter2);
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
@@ -280,9 +289,9 @@
BOOST_STM_TRANSACTION(_) {
counter2=c;
} BOOST_STM_RETRY
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_RETURN(_, c==counter2) ;
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_RETURN(c==counter2) ;
+ } BOOST_STM_E_END_TRANSACTION
return false;
}
bool test_par() {
@@ -310,10 +319,10 @@
}
bool test_twice_e() {
- BOOST_STM_E_TRANSACTION(_) {
- BOOST_STM_E_TRANSACTION(_) {
- } BOOST_STM_E_END_TRANSACTION(_)
- } BOOST_STM_E_END_TRANSACTION(_)
+ BOOST_STM_E_TRANSACTION {
+ BOOST_STM_E_TRANSACTION {
+ } BOOST_STM_E_END_TRANSACTION
+ } BOOST_STM_E_END_TRANSACTION
return true;
}
@@ -338,9 +347,9 @@
fails += !test_nested_e();
fails += !test_le();
fails += !test_const(counter);
-
+
fails += !test_par();
-
+
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-22 06:04:37 EST (Mon, 22 Feb 2010)
@@ -245,13 +245,6 @@
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 ]
- ########### fails sometimes
- #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 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 ]
@@ -289,6 +282,13 @@
alias failures
:
+ ########### 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 often
[ run stm : -bench ll -def -threads 2 -inserts 100 -latm tx : : : ll_def_tx_t2_i100 ]
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