|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r51670 - in sandbox/interthreads: boost/interthreads libs/interthreads/build libs/interthreads/doc libs/interthreads/example libs/interthreads/test
From: vicente.botet_at_[hidden]
Date: 2009-03-09 17:10:29
Author: viboes
Date: 2009-03-09 17:10:28 EDT (Mon, 09 Mar 2009)
New Revision: 51670
URL: http://svn.boost.org/trac/boost/changeset/51670
Log:
0.4.2 : Adaptation to the Boost.ThreadPool Version 0.23
Text files modified:
sandbox/interthreads/boost/interthreads/scheduler.hpp | 38 +++++++++++++----
sandbox/interthreads/boost/interthreads/wait_for_any.hpp | 86 +++++++++++++++++++++++++++++++++------
sandbox/interthreads/libs/interthreads/build/Jamfile.v2 | 11 ++--
sandbox/interthreads/libs/interthreads/doc/changes.qbk | 7 +++
sandbox/interthreads/libs/interthreads/example/parallel_sort.cpp | 2
sandbox/interthreads/libs/interthreads/example/parallel_sort2.cpp | 54 +++++++++++++++++++++++-
sandbox/interthreads/libs/interthreads/test/Jamfile.v2 | 7 +-
sandbox/interthreads/libs/interthreads/test/test_thread_pool.cpp | 82 +++++++++++++++++++++++++------------
8 files changed, 225 insertions(+), 62 deletions(-)
Modified: sandbox/interthreads/boost/interthreads/scheduler.hpp
==============================================================================
--- sandbox/interthreads/boost/interthreads/scheduler.hpp (original)
+++ sandbox/interthreads/boost/interthreads/scheduler.hpp 2009-03-09 17:10:28 EDT (Mon, 09 Mar 2009)
@@ -112,14 +112,18 @@
template <typename C>
struct get_future<tp::pool<C> > {
template <typename T>
- shared_future<T>& operator()(
+ struct future_type {
+ typedef shared_future<T> type;
+ };
+ template <typename T>
+ shared_future<T> operator()(
#ifdef TASK_POOL
//typename asynchronous_completion_token<tp::pool<C>,T>::type & act
tp::task<tp::pool<C>, T>& act
#else
tp::task<T>& act
#endif
- ) { return act.get_future(); }
+ ) { return act.result(); }
};
#ifdef TASK_POOL
@@ -154,31 +158,33 @@
#ifdef TASK_POOL
+
+
namespace partial_specialization_workaround {
template <typename Pool, typename R, typename Duration>
struct wait_until<tp::task<Pool, R> > {
static typename result_of::template wait_until<tp::task<Pool, R> >::type apply( tp::task<Pool, R>& act, const system_time& abs_time ) {
- return act.timed_wait_until(abs_time);
+ return act.result().timed_wait_until(abs_time);
}
};
template <typename Pool, typename R, typename Duration>
struct wait_for<tp::task<Pool, R>, Duration> {
static typename result_of::template wait_for<tp::task<Pool, R>,Duration>::type
apply( tp::task<Pool, R>& act, Duration rel_time ) {
- return act.timed_wait(rel_time);
+ return act.result().timed_wait(rel_time);
}
};
template <typename Pool, typename R>
struct join<tp::task<Pool, R> > {
static typename result_of::template join<tp::task<Pool, R> >::type apply( tp::task<Pool, R>& act) {
- return act.wait();
+ return act.result().wait();
}
};
template <typename Pool, typename R>
struct join_until<tp::task<Pool, R> > {
static typename result_of::template join_until<tp::task<Pool, R> >::type apply( tp::task<Pool, R>& act, const system_time& abs_time ) {
- return act.wait_until(abs_time);
+ return act.result().wait_until(abs_time);
}
};
template <typename Pool, typename R, typename Duration>
@@ -190,16 +196,23 @@
template< typename Pool, typename R >
struct interruption_requested<tp::task<Pool, R> > {
static typename result_of::template interruption_requested<tp::task<Pool, R> >::type apply( tp::task<Pool, R>& act ) {
- return act.interrupt_requested();
+ return act.interruption_requested();
}
};
}
#else
namespace partial_specialization_workaround {
+ template< typename R >
+ struct wait<tp::task<R> > {
+ static typename result_of::template wait<tp::task<R> >::type apply( tp::task<R>& act ) {
+ return act.result().wait();
+ }
+ };
+
template <typename R>
struct wait_until<tp::task<R> > {
static typename result_of::template wait_until<tp::task<R> >::type apply( tp::task<R>& act, const system_time& abs_time ) {
- return act.timed_wait_until(abs_time);
+ return act.result().timed_wait_until(abs_time);
}
};
template <typename R, typename Duration>
@@ -209,6 +222,13 @@
}
};
+ template <typename R>
+ struct get<tp::task<R> > {
+ static typename result_of::template get<tp::task<R> >::type apply( tp::task<R>& act ) {
+ return act.result().get();
+ }
+ };
+
template <typename R>
struct join<tp::task<R> > {
static typename result_of::template join<tp::task<R> >::type apply( tp::task<R>& act) {
@@ -230,7 +250,7 @@
template< typename R >
struct interruption_requested<tp::task<R> > {
static typename result_of::template interruption_requested<tp::task<R> >::type apply( tp::task<R>& act ) {
- return act.interrupt_requested();
+ return act.interruption_requested();
}
};
}
Modified: sandbox/interthreads/boost/interthreads/wait_for_any.hpp
==============================================================================
--- sandbox/interthreads/boost/interthreads/wait_for_any.hpp (original)
+++ sandbox/interthreads/boost/interthreads/wait_for_any.hpp 2009-03-09 17:10:28 EDT (Mon, 09 Mar 2009)
@@ -14,10 +14,12 @@
#include <boost/interthreads/algorithm/interrupt_all.hpp>
#include <boost/interthreads/algorithm/wait_all.hpp>
+#include <boost/interthreads/algorithm/get.hpp>
#include <boost/interthreads/fork_all.hpp>
#include <boost/fusion/include/tuple.hpp>
#include <boost/futures/future.hpp>
#include <boost/utility/result_of.hpp>
+#include <boost/type_traits/remove_reference.hpp>
#include <exception>
#include <boost/config/abi_prefix.hpp>
@@ -53,9 +55,9 @@
static T get(unsigned r, H &handles) {
switch (r) {
case 0:
- return fusion::at_c<0>(handles).get();
+ return interthreads::get(fusion::at_c<0>(handles));
case 1:
- return fusion::at_c<1>(handles).get();
+ return interthreads::get(fusion::at_c<1>(handles));
default:
throw std::range_error("");
}
@@ -73,11 +75,11 @@
static T get(unsigned r, H &handles) {
switch (r) {
case 0:
- return fusion::at_c<0>(handles).get();
+ return interthreads::get(fusion::at_c<0>(handles));
case 1:
- return fusion::at_c<1>(handles).get();
+ return interthreads::get(fusion::at_c<1>(handles));
case 2:
- return fusion::at_c<2>(handles).get();
+ return interthreads::get(fusion::at_c<2>(handles));
default:
throw std::range_error("");
}
@@ -119,8 +121,20 @@
template< typename AE, typename F1, typename F2>
typename result_of::wait_for_any<AE, fusion::tuple<F1,F2> >::type
wait_for_any( AE& ae, F1 f1, F2 f2 ) {
- typename result_of::fork_all<AE, fusion::tuple<F1,F2> >::type handles=fork_all(ae, f1, f2);
- unsigned r = boost::wait_for_any(get_future<AE>()(fusion::at_c<0>(handles)), get_future<AE>()(fusion::at_c<1>(handles)));
+ typedef typename result_of::fork_all<AE, fusion::tuple<F1,F2> >::type handles_type;
+ handles_type handles=fork_all(ae, f1, f2);
+ //unsigned r = boost::wait_for_any(get_future<AE>()(fusion::at_c<0>(handles)), get_future<AE>()(fusion::at_c<1>(handles)));
+ typename get_future<AE>::template future_type<
+ typename act_traits< typename remove_reference<
+ typename fusion::result_of::at_c<handles_type,0>::type
+ >::type >::move_dest_type
+ >::type fut0= get_future<AE>()(fusion::at_c<0>(handles));
+ typename get_future<AE>::template future_type<
+ typename act_traits< typename remove_reference<
+ typename fusion::result_of::at_c<handles_type,1>::type
+ >::type >::move_dest_type
+ >::type fut1= get_future<AE>()(fusion::at_c<1>(handles));
+ unsigned r = boost::wait_for_any(fut0, fut1);
//std::cout << "boost::wait_for_any=" << r << std::endl;
typename result_of::wait_for_any<AE, fusion::tuple<F1,F2> >::type res =
detail::partial<2,typename boost::result_of<F1()>::type >::make(r,handles);
@@ -133,8 +147,25 @@
template< typename AE, typename F1, typename F2, typename F3>
typename result_of::wait_for_any<AE, fusion::tuple<F1,F2,F3> >::type
wait_for_any( AE& ae, F1 f1, F2 f2 , F3 f3 ) {
- typename result_of::fork_all<AE, fusion::tuple<F1,F2,F3> >::type handles=fork_all(ae, f1, f2, f3);
- unsigned r = boost::wait_for_any(get_future<AE>()(fusion::at_c<0>(handles)), get_future<AE>()(fusion::at_c<1>(handles)), get_future<AE>()(fusion::at_c<2>(handles)));
+ typedef typename result_of::fork_all<AE, fusion::tuple<F1,F2,F3> >::type handles_type;
+ handles_type handles=fork_all(ae, f1, f2, f3);
+ //unsigned r = boost::wait_for_any(get_future<AE>()(fusion::at_c<0>(handles)), get_future<AE>()(fusion::at_c<1>(handles)), get_future<AE>()(fusion::at_c<2>(handles)));
+ typename get_future<AE>::template future_type<
+ typename act_traits< typename remove_reference<
+ typename fusion::result_of::at_c<handles_type,0>::type
+ >::type >::move_dest_type
+ >::type fut0= get_future<AE>()(fusion::at_c<0>(handles));
+ typename get_future<AE>::template future_type<
+ typename act_traits< typename remove_reference<
+ typename fusion::result_of::at_c<handles_type,1>::type
+ >::type >::move_dest_type
+ >::type fut1= get_future<AE>()(fusion::at_c<1>(handles));
+ typename get_future<AE>::template future_type<
+ typename act_traits< typename remove_reference<
+ typename fusion::result_of::at_c<handles_type,2>::type
+ >::type >::move_dest_type
+ >::type fut2= get_future<AE>()(fusion::at_c<2>(handles));
+ unsigned r = boost::wait_for_any(fut0, fut1, fut2);
typename result_of::wait_for_any<AE, fusion::tuple<F1,F2,F3> >::type res =
detail::partial<3, typename boost::result_of<F1()>::type >::make(r,handles);
//interrupt_all(handles);
@@ -144,8 +175,20 @@
template< typename AE, typename F1, typename F2>
typename result_of::wait_for_any<AE, fusion::tuple<F1,F2> >::type
wait_for_any_and_interrupt( AE& ae, F1 f1, F2 f2 ) {
- typename result_of::fork_all<AE, fusion::tuple<F1,F2> >::type handles=fork_all(ae, f1, f2);
- unsigned r = boost::wait_for_any(get_future<AE>()(fusion::at_c<0>(handles)), get_future<AE>()(fusion::at_c<1>(handles)));
+ typedef typename result_of::fork_all<AE, fusion::tuple<F1,F2> >::type handles_type;
+ handles_type handles=fork_all(ae, f1, f2);
+ //unsigned r = boost::wait_for_any(get_future<AE>()(fusion::at_c<0>(handles)), get_future<AE>()(fusion::at_c<1>(handles)));
+ typename get_future<AE>::template future_type<
+ typename act_traits< typename remove_reference<
+ typename fusion::result_of::at_c<handles_type,0>::type
+ >::type >::move_dest_type
+ >::type fut0= get_future<AE>()(fusion::at_c<0>(handles));
+ typename get_future<AE>::template future_type<
+ typename act_traits< typename remove_reference<
+ typename fusion::result_of::at_c<handles_type,1>::type
+ >::type >::move_dest_type
+ >::type fut1= get_future<AE>()(fusion::at_c<1>(handles));
+ unsigned r = boost::wait_for_any(fut0, fut1);
std::cout << "boost::wait_for_any=" << r << std::endl;
typename result_of::wait_for_any<AE, fusion::tuple<F1,F2> >::type res =
detail::partial<2,typename boost::result_of<F1()>::type >::make(r,handles);
@@ -157,8 +200,25 @@
template< typename AE, typename F1, typename F2, typename F3>
typename result_of::wait_for_any<AE, fusion::tuple<F1,F2,F3> >::type
wait_for_any_and_interrupt( AE& ae, F1 f1, F2 f2 , F3 f3 ) {
- typename result_of::fork_all<AE, fusion::tuple<F1,F2,F3> >::type handles=fork_all(ae, f1, f2, f3);
- unsigned r = boost::wait_for_any(get_future<AE>()(fusion::at_c<0>(handles)), get_future<AE>()(fusion::at_c<1>(handles)), get_future<AE>()(fusion::at_c<2>(handles)));
+ typedef typename result_of::fork_all<AE, fusion::tuple<F1,F2,F3> >::type handles_type;
+ handles_type handles=fork_all(ae, f1, f2, f3);
+ //unsigned r = boost::wait_for_any(get_future<AE>()(fusion::at_c<0>(handles)), get_future<AE>()(fusion::at_c<1>(handles)), get_future<AE>()(fusion::at_c<2>(handles)));
+ typename get_future<AE>::template future_type<
+ typename act_traits< typename remove_reference<
+ typename fusion::result_of::at_c<handles_type,0>::type
+ >::type >::move_dest_type
+ >::type fut0= get_future<AE>()(fusion::at_c<0>(handles));
+ typename get_future<AE>::template future_type<
+ typename act_traits< typename remove_reference<
+ typename fusion::result_of::at_c<handles_type,1>::type
+ >::type >::move_dest_type
+ >::type fut1= get_future<AE>()(fusion::at_c<1>(handles));
+ typename get_future<AE>::template future_type<
+ typename act_traits< typename remove_reference<
+ typename fusion::result_of::at_c<handles_type,2>::type
+ >::type >::move_dest_type
+ >::type fut2= get_future<AE>()(fusion::at_c<2>(handles));
+ unsigned r = boost::wait_for_any(fut0, fut1, fut2);
typename result_of::wait_for_any<AE, fusion::tuple<F1,F2,F3> >::type res =
detail::partial<3, typename boost::result_of<F1()>::type >::make(r,handles);
interrupt_all(handles);
Modified: sandbox/interthreads/libs/interthreads/build/Jamfile.v2
==============================================================================
--- sandbox/interthreads/libs/interthreads/build/Jamfile.v2 (original)
+++ sandbox/interthreads/libs/interthreads/build/Jamfile.v2 2009-03-09 17:10:28 EDT (Mon, 09 Mar 2009)
@@ -38,11 +38,12 @@
project boost/interthreads
: source-location ../src
- : requirements <threading>multi
-# <target-os>cygwin
-# <interthreadapi>pthread
- <variant>debug
-# <define>BOOST_THREAD_HAS_THREAD_ATTR
+ : requirements
+ <threading>multi
+# <target-os>cygwin
+# <interthreadapi>pthread
+ <variant>debug
+# <define>BOOST_THREAD_HAS_THREAD_ATTR
<include>../../..
<include>../../../../../boost_1_38_0
Modified: sandbox/interthreads/libs/interthreads/doc/changes.qbk
==============================================================================
--- sandbox/interthreads/libs/interthreads/doc/changes.qbk (original)
+++ sandbox/interthreads/libs/interthreads/doc/changes.qbk 2009-03-09 17:10:28 EDT (Mon, 09 Mar 2009)
@@ -7,6 +7,13 @@
[section:changes Appendix A: History]
+[section [*Version 0.4.2, Mars 9, 2009] Adaptation to the Boost.ThreadPoold Version 0.23]
+
+[*New Features:]
+
+* Adaptation to the Boost.ThreadPoold Version 0.21
+
+[endsect]
[section [*Version 0.4.1, Mars 1, 2009] Adaptation to the Boost.ThreadPoold Version 0.21 + Scoped forking + Parallel sort]
[*New Features:]
Modified: sandbox/interthreads/libs/interthreads/example/parallel_sort.cpp
==============================================================================
--- sandbox/interthreads/libs/interthreads/example/parallel_sort.cpp (original)
+++ sandbox/interthreads/libs/interthreads/example/parallel_sort.cpp 2009-03-09 17:10:28 EDT (Mon, 09 Mar 2009)
@@ -103,7 +103,7 @@
}
inplace_solve<DirectSolver,Composer,AE,Range>(ae, parts[BOOST_PARTS-1], cutoff);
for (unsigned i=0;i < BOOST_PARTS-1; ++i) {
- tasks[i].wait();
+ tasks[i].result().wait();
};
Composer()(range);
Modified: sandbox/interthreads/libs/interthreads/example/parallel_sort2.cpp
==============================================================================
--- sandbox/interthreads/libs/interthreads/example/parallel_sort2.cpp (original)
+++ sandbox/interthreads/libs/interthreads/example/parallel_sort2.cpp 2009-03-09 17:10:28 EDT (Mon, 09 Mar 2009)
@@ -34,6 +34,36 @@
#include <assert.h>
+#include <boost/range/algorithm/count.hpp>
+
+#if 0
+
+struct A {
+ int x;
+ int y;
+};
+
+namespace boost {
+ //template <typename T>
+ unsigned count(A& t, const int& i) {
+ return 2;
+ }
+}
+
+
+unsigned xx() {
+ A a;
+ return boost::count(a, 1);
+}
+
+int main() {
+ std::cout << xx() << std::endl;
+
+}
+
+#else
+
+#define BOOST_NB_OF_THREADS 4
#define BOOST_PARTS 2
#define NN 400000
@@ -126,7 +156,21 @@
boost::for_each(tasks, &boost::interthreads::wait_act<task_type>);
//std::cout << "par_inplace_merge_fct " << size << ">>"<< std::endl;
+ #if BOOST_PARTS == 4
+ partition<Range> sorted(range, BOOST_PARTS/2);
+ Composer composer;
+ for (unsigned i=0;i < BOOST_PARTS-1; ++i) {
+ task_type tmp(ae.submit(
+ boost::bind(
+ composer,
+ parts[i]
+ )));
+ tasks.push_back(tmp);
+ }
+ boost::for_each(tasks, &boost::interthreads::wait_act<task_type>);
+ #endif
Composer()(range);
+
//std::cout << "par_ " << size << ">>"<< std::endl;
}
@@ -190,7 +234,7 @@
}
// creates a threadpool with two worker-threads
- pool_type pool( boost::tp::poolsize( 2) );
+ pool_type pool( boost::tp::poolsize(BOOST_NB_OF_THREADS) );
for (unsigned i=0; i<NN; ++i) values5[i]=NN-i-1;
{
@@ -244,6 +288,7 @@
parallel_sort(pool, values5, NN/16);
}
+#if 0
for (unsigned i=0; i<NN; ++i) values5[i]=NN-i-1;
{
std::cout << "parallel_sort "<<NN/32<<": reverse 0.."<<NN;
@@ -256,10 +301,11 @@
scoped_timer tmr; // start timing
parallel_sort(pool, values5, NN/32);
}
-
+#endif
- std::cout << "shutdown"<< std::endl;
- pool.shutdown();
+ //std::cout << "shutdown"<< std::endl;
+ //pool.shutdown();
std::cout << "end"<< std::endl;
return 0;
}
+#endif
Modified: sandbox/interthreads/libs/interthreads/test/Jamfile.v2
==============================================================================
--- sandbox/interthreads/libs/interthreads/test/Jamfile.v2 (original)
+++ sandbox/interthreads/libs/interthreads/test/Jamfile.v2 2009-03-09 17:10:28 EDT (Mon, 09 Mar 2009)
@@ -23,17 +23,17 @@
: requirements
# <library>/boost/test//boost_unit_test_framework/<link>static
# <library>/boost/thread//boost_thread/<link>static
-# <library>$BOOST_ROOT/libs/test/build//boost_unit_test_framework/<link>static
<library>../../../../../boost_1_38_0/libs/test/build//boost_unit_test_framework/<link>static
<library>../build//boost_interthreads/<link>static
+ <library>../../tp/build//boost_threadpool/<link>static
<library>../../../../../boost_1_38_0/libs/thread/build//boost_thread/<link>static
<include>.
<include>../../..
<include>../../../../../boost_1_38_0
<threading>multi
-# <target-os>cygwin
-# <interthreadapi>pthread
+# <target-os>cygwin
+# <interthreadapi>pthread
<variant>debug
# <define>BOOST_THREAD_HAS_THREAD_ATTR
@@ -69,6 +69,7 @@
[ interthreads-run ../example/multiple_algorithms.cpp ]
[ interthreads-run ../example/parallel_sort.cpp ]
[ interthreads-run ../example/parallel_sort2.cpp ]
+# [ interthreads-run parallel_sort.cpp ]
;
Modified: sandbox/interthreads/libs/interthreads/test/test_thread_pool.cpp
==============================================================================
--- sandbox/interthreads/libs/interthreads/test/test_thread_pool.cpp (original)
+++ sandbox/interthreads/libs/interthreads/test/test_thread_pool.cpp 2009-03-09 17:10:28 EDT (Mon, 09 Mar 2009)
@@ -19,6 +19,7 @@
#include <boost/tp/unbounded_channel.hpp>
#include <boost/tp/fifo.hpp>
+#include <boost/tp/default_pool.hpp>
using namespace boost::unit_test;
@@ -32,9 +33,10 @@
boost::tp::unbounded_channel< boost::tp::fifo >
> pool_type;
#else
-typedef boost::tp::pool<
- boost::tp::unbounded_channel< boost::tp::fifo >
-> pool_type;
+//typedef boost::tp::pool<
+// boost::tp::unbounded_channel< boost::tp::fifo >
+//> pool_type;
+typedef boost::tp::default_pool& pool_type;
#endif
#if 0
@@ -54,123 +56,147 @@
}
#endif
void do_test_fork() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_fork(ae);
}
void do_test_fork_1() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_fork_1(ae);
}
void do_test_creation_through_reference_wrapper()
{
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_creation_through_reference_wrapper(ae);
}
void do_test_creation_through_functor()
{
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_creation_through_functor(ae);
}
void do_test_wait() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_wait(ae);
}
void do_test_wait_until() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_wait_until(ae);
}
void do_test_wait_for() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_wait_for(ae);
}
void do_test_join() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_join(ae);
}
void do_test_join_until() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_join_until(ae);
}
void do_test_join_for() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_join_for(ae);
}
void do_test_join_all() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_join_all(ae);
}
void do_test_join_all_until() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_join_all_until(ae);
}
void do_test_join_all_for() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_join_all_for(ae);
}
void do_test_thread_interrupts_at_interruption_point() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_thread_interrupts_at_interruption_point_m(ae);
}
void do_test_wait_all() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_wait_all(ae);
}
void do_test_wait_all_until() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_wait_all_until(ae);
}
void do_test_wait_all_for() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_wait_all_for(ae);
}
void do_test_wait_for_any() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_wait_for_any(ae);
}
void do_test_set_all() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_set_all(ae);
}
void do_test_get() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_get(ae);
}
void do_test_get_all() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_set_all(ae);
}
void do_test_wait_for_all() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_wait_for_all(ae);
}
#if 0
void do_test_fork_after_wait() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_fork_after_wait(ae);
}
void do_test_fork_after_get() {
- pool_type ae(boost::tp::poolsize(2));
+ //pool_type ae(boost::tp::poolsize(2));
+ pool_type ae(boost::tp::get_default_pool());
aetst::do_test_fork_after_get(ae);
}
#endif
@@ -188,7 +214,9 @@
test->add(BOOST_TEST_CASE(&do_test_fork_1));
test->add(BOOST_TEST_CASE(&do_test_thread_interrupts_at_interruption_point));
test->add(BOOST_TEST_CASE(&do_test_creation_through_functor));
+#if 0 // DO NOT WORK YET
test->add(BOOST_TEST_CASE(&do_test_creation_through_reference_wrapper));
+#endif
test->add(BOOST_TEST_CASE(&do_test_get));
test->add(BOOST_TEST_CASE(&do_test_wait));
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