15 #ifndef STXXL_IO_REQUEST_QUEUE_IMPL_WORKER_HEADER 16 #define STXXL_IO_REQUEST_QUEUE_IMPL_WORKER_HEADER 18 #ifdef STXXL_BOOST_CONFIG 19 #include <boost/config.hpp> 22 #ifdef STXXL_BOOST_THREADS // Use Portable Boost threads 23 #include <boost/thread/thread.hpp> 28 #include <stxxl/bits/io/request_queue.h> 29 #include <stxxl/bits/common/semaphore.h> 30 #include <stxxl/bits/common/state.h> 33 __STXXL_BEGIN_NAMESPACE
38 class request_queue_impl_worker :
public request_queue
41 enum thread_state { NOT_RUNNING, RUNNING, TERMINATING, TERMINATE = TERMINATING };
43 #ifdef STXXL_BOOST_THREADS 44 typedef boost::thread * thread_type;
46 typedef pthread_t thread_type;
50 void start_thread(
void * (*worker)(
void *),
void * arg, thread_type & t, state<thread_state> & s);
51 void stop_thread(thread_type & t, state<thread_state> & s, semaphore & sem);
58 #endif // !STXXL_IO_REQUEST_QUEUE_IMPL_WORKER_HEADER