|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r60561 - sandbox/stm/branches/vbe/libs/stm/example/tx
From: vicente.botet_at_[hidden]
Date: 2010-03-13 18:13:01
Author: viboes
Date: 2010-03-13 18:13:00 EST (Sat, 13 Mar 2010)
New Revision: 60561
URL: http://svn.boost.org/trac/boost/changeset/60561
Log:
Boost.STM/vbe:
* Warning removal
Text files modified:
sandbox/stm/branches/vbe/libs/stm/example/tx/bank.cpp | 6 ++--
sandbox/stm/branches/vbe/libs/stm/example/tx/list.cpp | 46 ++++++++++++++++++++++++++++-----------
sandbox/stm/branches/vbe/libs/stm/example/tx/list_sp.cpp | 18 +++++++-------
3 files changed, 45 insertions(+), 25 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-13 18:13:00 EST (Sat, 13 Mar 2010)
@@ -102,13 +102,13 @@
for(int i=10; i>0;--i)
{
try {
- BOOST_STM_OUTER_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
int amount=random() % 1000;
int acc1=random() % bank_->accounts.size();
int acc2=random() % bank_->accounts.size();
bank_->accounts[acc1]->Withdraw(amount);
bank_->accounts[acc2]->Deposit(amount+1);
- } BOOST_STM_RETRY
+ } BOOST_STM_E_END_TRANSACTION;
}
CATCH_AND_PRINT_ALL
}
@@ -290,7 +290,7 @@
}
int main() {
try {
- std::terminate_handler x = std::set_terminate(term_hd);
+ std::set_terminate(term_hd);
transaction::enable_dynamic_priority_assignment();
transaction::do_deferred_updating();
transaction::initialize();
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-13 18:13:00 EST (Sat, 13 Mar 2010)
@@ -120,14 +120,16 @@
void insert(const T& val) {
BOOST_STM_E_TRANSACTION {
+ {boost::lock_guard<boost::mutex> lk(log_mutex);
+ std::cout << &BOOST_STM_CURRENT << " " << BOOST_STM_CURRENT.parent() << " " << boost::this_thread::get_id() << " $$$$$INFO insert " << __FILE__ << "[" << __LINE__ << "]" << std::endl;
+ }
list_node<T> * prev = head_;
list_node<T> * curr = prev->next_;
while (curr!=0) {
- if (curr->value_ == val) {
- std::cout << __FILE__ << "["<<__LINE__<<"] return" << std::endl;\
- BOOST_STM_E_RETURN_NOTHING;
- }
- //~ if (curr->value_ == val) return;
+ //~ 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_;
@@ -155,7 +157,10 @@
// remove a node if its value == val
void remove(const T& val)
{
- BOOST_STM_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
+ {boost::lock_guard<boost::mutex> lk(log_mutex);
+ std::cout << &BOOST_STM_CURRENT << " " << BOOST_STM_CURRENT.parent() << " " << boost::this_thread::get_id() << " $$$$$INFO remove " << __FILE__ << "[" << __LINE__ << "]" << std::endl;
+ }
// find the node whose val matches the request
list_node<T> * prev=head_;
list_node<T> * curr=prev->next_;
@@ -164,7 +169,7 @@
if (curr->value_ == val) {
prev->next_=curr->next_;
// delete curr...
- BOOST_STM_TX_DELETE_PTR(_,curr);
+ BOOST_STM_E_DELETE_PTR(curr);
--size_;
break;
} else if (curr->value_ > val) {
@@ -174,7 +179,7 @@
prev = curr;
curr = prev->next_;
}
- } BOOST_STM_RETRY
+ } BOOST_STM_E_END_TRANSACTION;
}
};
@@ -218,6 +223,10 @@
thread_initializer thi;
try {
BOOST_STM_E_TRANSACTION {
+ {boost::lock_guard<boost::mutex> lk(log_mutex);
+ std::cout << &BOOST_STM_CURRENT << " " << BOOST_STM_CURRENT.parent() << " " << boost::this_thread::get_id() << " $$$$$INFO insert1_th " << __FILE__ << "[" << __LINE__ << "]" << std::endl;
+ }
+
l.insert(1);
} BOOST_STM_E_END_TRANSACTION;
}
@@ -228,6 +237,9 @@
try {
//~ BOOST_STM_OUTER_TRANSACTION(_) {
BOOST_STM_E_TRANSACTION {
+ {boost::lock_guard<boost::mutex> lk(log_mutex);
+ std::cout << &BOOST_STM_CURRENT << " " << BOOST_STM_CURRENT.parent() << " " << boost::this_thread::get_id() << " $$$$$INFO insert2_th " << __FILE__ << "[" << __LINE__ << "]" << std::endl;
+ }
l.insert(2);
} BOOST_STM_E_END_TRANSACTION;
//~ } BOOST_STM_RETRY
@@ -237,18 +249,26 @@
void insert3_th() {
thread_initializer thi;
try {
- BOOST_STM_OUTER_TRANSACTION(_) {
+ //~ BOOST_STM_OUTER_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
+ {boost::lock_guard<boost::mutex> lk(log_mutex);
+ std::cout << &BOOST_STM_CURRENT << " " << BOOST_STM_CURRENT.parent() << " " << boost::this_thread::get_id() << " $$$$$INFO insert3_th " << __FILE__ << "[" << __LINE__ << "]" << std::endl;
+ }
l.insert(3);
- } BOOST_STM_RETRY
+ } BOOST_STM_E_END_TRANSACTION;
+ //~ } BOOST_STM_RETRY
}
CATCH_AND_PRINT_ALL
}
bool remove(int val) {
//thread_initializer thi;
- BOOST_STM_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
+ {boost::lock_guard<boost::mutex> lk(log_mutex);
+ std::cout << &BOOST_STM_CURRENT << " " << BOOST_STM_CURRENT.parent() << " " << boost::this_thread::get_id() << " $$$$$INFO remove " << __FILE__ << "[" << __LINE__ << "]" << std::endl;
+ }
l.remove(val);
- } BOOST_STM_RETRY
+ } BOOST_STM_E_END_TRANSACTION;
return true;
}
@@ -335,7 +355,7 @@
}
int main() {
try {
- std::terminate_handler x = std::set_terminate(term_hd);
+ std::set_terminate(term_hd);
transaction::enable_dynamic_priority_assignment();
transaction::do_deferred_updating();
transaction::initialize();
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-13 18:13:00 EST (Sat, 13 Mar 2010)
@@ -111,18 +111,18 @@
// remove a node if its value == val
void remove(const T& val)
{
- BOOST_STM_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
// find the node whose val matches the request
- read_ptr<list_node<T> > prev(_, head_);
- read_ptr<list_node<T> > curr(_, prev->next_);
+ read_ptr<list_node<T> > prev(BOOST_STM_CURRENT, head_);
+ read_ptr<list_node<T> > curr(BOOST_STM_CURRENT, prev->next_);
while (curr) {
// if we find the node, disconnect it and end the search
if (curr->value_ == val) {
make_write_ptr<static_poly>(prev)->next_=curr->next_;
// delete curr...
- BOOST_STM_TX_DELETE_PTR(_,curr);
+ BOOST_STM_E_DELETE_PTR(curr);
//--size_;
- --(make_write_ptr<static_poly>(_, this)->size_);
+ --(make_write_ptr<static_poly>(BOOST_STM_CURRENT, this)->size_);
//write_ptr<list<T> > that(_, this);
//++(that->size_);
break;
@@ -133,7 +133,7 @@
prev = curr;
curr = prev->next_;
}
- } BOOST_STM_RETRY
+ } BOOST_STM_E_END_TRANSACTION;
}
};
@@ -194,9 +194,9 @@
void remove2() {
//thread_initializer thi;
- BOOST_STM_TRANSACTION(_) {
+ BOOST_STM_E_TRANSACTION {
l.remove(2);
- } BOOST_STM_RETRY
+ } BOOST_STM_E_END_TRANSACTION;
}
void insert3_th() {
@@ -279,7 +279,7 @@
}
int main() {
try {
- std::terminate_handler x = std::set_terminate(term_hd);
+ std::set_terminate(term_hd);
transaction::enable_dynamic_priority_assignment();
transaction::do_deferred_updating();
transaction::initialize();
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