summaryrefslogtreecommitdiff
path: root/src/third_party/boost-1.56.0/boost/thread/detail/thread_group.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/boost-1.56.0/boost/thread/detail/thread_group.hpp')
-rw-r--r--src/third_party/boost-1.56.0/boost/thread/detail/thread_group.hpp154
1 files changed, 0 insertions, 154 deletions
diff --git a/src/third_party/boost-1.56.0/boost/thread/detail/thread_group.hpp b/src/third_party/boost-1.56.0/boost/thread/detail/thread_group.hpp
deleted file mode 100644
index 69ce991e783..00000000000
--- a/src/third_party/boost-1.56.0/boost/thread/detail/thread_group.hpp
+++ /dev/null
@@ -1,154 +0,0 @@
-#ifndef BOOST_THREAD_DETAIL_THREAD_GROUP_HPP
-#define BOOST_THREAD_DETAIL_THREAD_GROUP_HPP
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-// (C) Copyright 2007-9 Anthony Williams
-
-#include <list>
-#include <boost/thread/shared_mutex.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/thread/lock_guard.hpp>
-
-#include <boost/config/abi_prefix.hpp>
-
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4251)
-#endif
-
-namespace boost
-{
- class thread_group
- {
- private:
- thread_group(thread_group const&);
- thread_group& operator=(thread_group const&);
- public:
- thread_group() {}
- ~thread_group()
- {
- for(std::list<thread*>::iterator it=threads.begin(),end=threads.end();
- it!=end;
- ++it)
- {
- delete *it;
- }
- }
-
- bool is_this_thread_in()
- {
- thread::id id = this_thread::get_id();
- boost::shared_lock<shared_mutex> guard(m);
- for(std::list<thread*>::iterator it=threads.begin(),end=threads.end();
- it!=end;
- ++it)
- {
- if ((*it)->get_id() == id)
- return true;
- }
- return false;
- }
-
- bool is_thread_in(thread* thrd)
- {
- if(thrd)
- {
- thread::id id = thrd->get_id();
- boost::shared_lock<shared_mutex> guard(m);
- for(std::list<thread*>::iterator it=threads.begin(),end=threads.end();
- it!=end;
- ++it)
- {
- if ((*it)->get_id() == id)
- return true;
- }
- return false;
- }
- else
- {
- return false;
- }
- }
-
- template<typename F>
- thread* create_thread(F threadfunc)
- {
- boost::lock_guard<shared_mutex> guard(m);
- std::auto_ptr<thread> new_thread(new thread(threadfunc));
- threads.push_back(new_thread.get());
- return new_thread.release();
- }
-
- void add_thread(thread* thrd)
- {
- if(thrd)
- {
- BOOST_THREAD_ASSERT_PRECONDITION( ! is_thread_in(thrd) ,
- thread_resource_error(static_cast<int>(system::errc::resource_deadlock_would_occur), "boost::thread_group: trying to add a duplicated thread")
- );
-
- boost::lock_guard<shared_mutex> guard(m);
- threads.push_back(thrd);
- }
- }
-
- void remove_thread(thread* thrd)
- {
- boost::lock_guard<shared_mutex> guard(m);
- std::list<thread*>::iterator const it=std::find(threads.begin(),threads.end(),thrd);
- if(it!=threads.end())
- {
- threads.erase(it);
- }
- }
-
- void join_all()
- {
- BOOST_THREAD_ASSERT_PRECONDITION( ! is_this_thread_in() ,
- thread_resource_error(static_cast<int>(system::errc::resource_deadlock_would_occur), "boost::thread_group: trying joining itself")
- );
- boost::shared_lock<shared_mutex> guard(m);
-
- for(std::list<thread*>::iterator it=threads.begin(),end=threads.end();
- it!=end;
- ++it)
- {
- if ((*it)->joinable())
- (*it)->join();
- }
- }
-
-#if defined BOOST_THREAD_PROVIDES_INTERRUPTIONS
- void interrupt_all()
- {
- boost::shared_lock<shared_mutex> guard(m);
-
- for(std::list<thread*>::iterator it=threads.begin(),end=threads.end();
- it!=end;
- ++it)
- {
- (*it)->interrupt();
- }
- }
-#endif
-
- size_t size() const
- {
- boost::shared_lock<shared_mutex> guard(m);
- return threads.size();
- }
-
- private:
- std::list<thread*> threads;
- mutable shared_mutex m;
- };
-}
-
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#include <boost/config/abi_suffix.hpp>
-
-#endif