summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/Boost/boost/thread/pthread')
m---------3rdParty/Boost0
-rw-r--r--3rdParty/Boost/boost/thread/pthread/condition_variable.hpp176
-rw-r--r--3rdParty/Boost/boost/thread/pthread/condition_variable_fwd.hpp97
-rw-r--r--3rdParty/Boost/boost/thread/pthread/mutex.hpp210
-rw-r--r--3rdParty/Boost/boost/thread/pthread/once.hpp90
-rw-r--r--3rdParty/Boost/boost/thread/pthread/pthread_mutex_scoped_lock.hpp54
-rw-r--r--3rdParty/Boost/boost/thread/pthread/recursive_mutex.hpp266
-rw-r--r--3rdParty/Boost/boost/thread/pthread/shared_mutex.hpp303
-rw-r--r--3rdParty/Boost/boost/thread/pthread/thread_data.hpp118
-rw-r--r--3rdParty/Boost/boost/thread/pthread/thread_heap_alloc.hpp242
-rw-r--r--3rdParty/Boost/boost/thread/pthread/timespec.hpp36
11 files changed, 0 insertions, 1592 deletions
diff --git a/3rdParty/Boost b/3rdParty/Boost
new file mode 160000
+Subproject 3bbdbc8cf1996f23d9a366da8bac0f97be6ad79
diff --git a/3rdParty/Boost/boost/thread/pthread/condition_variable.hpp b/3rdParty/Boost/boost/thread/pthread/condition_variable.hpp
deleted file mode 100644
index 8ec6ae7..0000000
--- a/3rdParty/Boost/boost/thread/pthread/condition_variable.hpp
+++ /dev/null
@@ -1,176 +0,0 @@
-#ifndef BOOST_THREAD_CONDITION_VARIABLE_PTHREAD_HPP
-#define BOOST_THREAD_CONDITION_VARIABLE_PTHREAD_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-8 Anthony Williams
-
-#include "timespec.hpp"
-#include "pthread_mutex_scoped_lock.hpp"
-#include "thread_data.hpp"
-#include "condition_variable_fwd.hpp"
-
-#include <boost/config/abi_prefix.hpp>
-
-namespace boost
-{
- inline void condition_variable::wait(unique_lock<mutex>& m)
- {
- detail::interruption_checker check_for_interruption(&cond);
- BOOST_VERIFY(!pthread_cond_wait(&cond,m.mutex()->native_handle()));
- }
-
- inline bool condition_variable::timed_wait(unique_lock<mutex>& m,boost::system_time const& wait_until)
- {
- detail::interruption_checker check_for_interruption(&cond);
- struct timespec const timeout=detail::get_timespec(wait_until);
- int const cond_res=pthread_cond_timedwait(&cond,m.mutex()->native_handle(),&timeout);
- if(cond_res==ETIMEDOUT)
- {
- return false;
- }
- BOOST_ASSERT(!cond_res);
- return true;
- }
-
- inline void condition_variable::notify_one()
- {
- BOOST_VERIFY(!pthread_cond_signal(&cond));
- }
-
- inline void condition_variable::notify_all()
- {
- BOOST_VERIFY(!pthread_cond_broadcast(&cond));
- }
-
- class condition_variable_any
- {
- pthread_mutex_t internal_mutex;
- pthread_cond_t cond;
-
- condition_variable_any(condition_variable&);
- condition_variable_any& operator=(condition_variable&);
-
- public:
- condition_variable_any()
- {
- int const res=pthread_mutex_init(&internal_mutex,NULL);
- if(res)
- {
- throw thread_resource_error();
- }
- int const res2=pthread_cond_init(&cond,NULL);
- if(res2)
- {
- BOOST_VERIFY(!pthread_mutex_destroy(&internal_mutex));
- throw thread_resource_error();
- }
- }
- ~condition_variable_any()
- {
- BOOST_VERIFY(!pthread_mutex_destroy(&internal_mutex));
- BOOST_VERIFY(!pthread_cond_destroy(&cond));
- }
-
- template<typename lock_type>
- void wait(lock_type& m)
- {
- int res=0;
- {
- detail::interruption_checker check_for_interruption(&cond);
- {
- boost::pthread::pthread_mutex_scoped_lock internal_lock(&internal_mutex);
- m.unlock();
- res=pthread_cond_wait(&cond,&internal_mutex);
- }
- m.lock();
- }
- if(res)
- {
- throw condition_error();
- }
- }
-
- template<typename lock_type,typename predicate_type>
- void wait(lock_type& m,predicate_type pred)
- {
- while(!pred()) wait(m);
- }
-
- template<typename lock_type>
- bool timed_wait(lock_type& m,boost::system_time const& wait_until)
- {
- struct timespec const timeout=detail::get_timespec(wait_until);
- int res=0;
- {
- detail::interruption_checker check_for_interruption(&cond);
- {
- boost::pthread::pthread_mutex_scoped_lock internal_lock(&internal_mutex);
- m.unlock();
- res=pthread_cond_timedwait(&cond,&internal_mutex,&timeout);
- }
- m.lock();
- }
- if(res==ETIMEDOUT)
- {
- return false;
- }
- if(res)
- {
- throw condition_error();
- }
- return true;
- }
- template<typename lock_type>
- bool timed_wait(lock_type& m,xtime const& wait_until)
- {
- return timed_wait(m,system_time(wait_until));
- }
-
- template<typename lock_type,typename duration_type>
- bool timed_wait(lock_type& m,duration_type const& wait_duration)
- {
- return timed_wait(m,get_system_time()+wait_duration);
- }
-
- template<typename lock_type,typename predicate_type>
- bool timed_wait(lock_type& m,boost::system_time const& wait_until,predicate_type pred)
- {
- while (!pred())
- {
- if(!timed_wait(m, wait_until))
- return pred();
- }
- return true;
- }
-
- template<typename lock_type,typename predicate_type>
- bool timed_wait(lock_type& m,xtime const& wait_until,predicate_type pred)
- {
- return timed_wait(m,system_time(wait_until),pred);
- }
-
- template<typename lock_type,typename duration_type,typename predicate_type>
- bool timed_wait(lock_type& m,duration_type const& wait_duration,predicate_type pred)
- {
- return timed_wait(m,get_system_time()+wait_duration,pred);
- }
-
- void notify_one()
- {
- boost::pthread::pthread_mutex_scoped_lock internal_lock(&internal_mutex);
- BOOST_VERIFY(!pthread_cond_signal(&cond));
- }
-
- void notify_all()
- {
- boost::pthread::pthread_mutex_scoped_lock internal_lock(&internal_mutex);
- BOOST_VERIFY(!pthread_cond_broadcast(&cond));
- }
- };
-
-}
-
-#include <boost/config/abi_suffix.hpp>
-
-#endif
diff --git a/3rdParty/Boost/boost/thread/pthread/condition_variable_fwd.hpp b/3rdParty/Boost/boost/thread/pthread/condition_variable_fwd.hpp
deleted file mode 100644
index 4048cdf..0000000
--- a/3rdParty/Boost/boost/thread/pthread/condition_variable_fwd.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef BOOST_THREAD_PTHREAD_CONDITION_VARIABLE_FWD_HPP
-#define BOOST_THREAD_PTHREAD_CONDITION_VARIABLE_FWD_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-8 Anthony Williams
-
-#include <boost/assert.hpp>
-#include <pthread.h>
-#include <boost/thread/mutex.hpp>
-#include <boost/thread/locks.hpp>
-#include <boost/thread/thread_time.hpp>
-#include <boost/thread/xtime.hpp>
-
-#include <boost/config/abi_prefix.hpp>
-
-namespace boost
-{
- class condition_variable
- {
- private:
- pthread_cond_t cond;
-
- condition_variable(condition_variable&);
- condition_variable& operator=(condition_variable&);
-
- public:
- condition_variable()
- {
- int const res=pthread_cond_init(&cond,NULL);
- if(res)
- {
- throw thread_resource_error();
- }
- }
- ~condition_variable()
- {
- BOOST_VERIFY(!pthread_cond_destroy(&cond));
- }
-
- void wait(unique_lock<mutex>& m);
-
- template<typename predicate_type>
- void wait(unique_lock<mutex>& m,predicate_type pred)
- {
- while(!pred()) wait(m);
- }
-
- bool timed_wait(unique_lock<mutex>& m,boost::system_time const& wait_until);
- bool timed_wait(unique_lock<mutex>& m,xtime const& wait_until)
- {
- return timed_wait(m,system_time(wait_until));
- }
-
- template<typename duration_type>
- bool timed_wait(unique_lock<mutex>& m,duration_type const& wait_duration)
- {
- return timed_wait(m,get_system_time()+wait_duration);
- }
-
- template<typename predicate_type>
- bool timed_wait(unique_lock<mutex>& m,boost::system_time const& wait_until,predicate_type pred)
- {
- while (!pred())
- {
- if(!timed_wait(m, wait_until))
- return pred();
- }
- return true;
- }
-
- template<typename predicate_type>
- bool timed_wait(unique_lock<mutex>& m,xtime const& wait_until,predicate_type pred)
- {
- return timed_wait(m,system_time(wait_until),pred);
- }
-
- template<typename duration_type,typename predicate_type>
- bool timed_wait(unique_lock<mutex>& m,duration_type const& wait_duration,predicate_type pred)
- {
- return timed_wait(m,get_system_time()+wait_duration,pred);
- }
-
- typedef pthread_cond_t* native_handle_type;
- native_handle_type native_handle()
- {
- return &cond;
- }
-
- void notify_one();
- void notify_all();
- };
-}
-
-#include <boost/config/abi_suffix.hpp>
-
-#endif
diff --git a/3rdParty/Boost/boost/thread/pthread/mutex.hpp b/3rdParty/Boost/boost/thread/pthread/mutex.hpp
deleted file mode 100644
index 51d62ae..0000000
--- a/3rdParty/Boost/boost/thread/pthread/mutex.hpp
+++ /dev/null
@@ -1,210 +0,0 @@
-#ifndef BOOST_THREAD_PTHREAD_MUTEX_HPP
-#define BOOST_THREAD_PTHREAD_MUTEX_HPP
-// (C) Copyright 2007-8 Anthony Williams
-// 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)
-
-#include <pthread.h>
-#include <boost/utility.hpp>
-#include <boost/thread/exceptions.hpp>
-#include <boost/thread/locks.hpp>
-#include <boost/thread/thread_time.hpp>
-#include <boost/thread/xtime.hpp>
-#include <boost/assert.hpp>
-#include <errno.h>
-#include "timespec.hpp"
-#include "pthread_mutex_scoped_lock.hpp"
-
-#ifdef _POSIX_TIMEOUTS
-#if _POSIX_TIMEOUTS >= 0
-#define BOOST_PTHREAD_HAS_TIMEDLOCK
-#endif
-#endif
-
-#include <boost/config/abi_prefix.hpp>
-
-namespace boost
-{
- class mutex:
- boost::noncopyable
- {
- private:
- pthread_mutex_t m;
- public:
- mutex()
- {
- int const res=pthread_mutex_init(&m,NULL);
- if(res)
- {
- throw thread_resource_error();
- }
- }
- ~mutex()
- {
- BOOST_VERIFY(!pthread_mutex_destroy(&m));
- }
-
- void lock()
- {
- BOOST_VERIFY(!pthread_mutex_lock(&m));
- }
-
- void unlock()
- {
- BOOST_VERIFY(!pthread_mutex_unlock(&m));
- }
-
- bool try_lock()
- {
- int const res=pthread_mutex_trylock(&m);
- BOOST_ASSERT(!res || res==EBUSY);
- return !res;
- }
-
- typedef pthread_mutex_t* native_handle_type;
- native_handle_type native_handle()
- {
- return &m;
- }
-
- typedef unique_lock<mutex> scoped_lock;
- typedef detail::try_lock_wrapper<mutex> scoped_try_lock;
- };
-
- typedef mutex try_mutex;
-
- class timed_mutex:
- boost::noncopyable
- {
- private:
- pthread_mutex_t m;
-#ifndef BOOST_PTHREAD_HAS_TIMEDLOCK
- pthread_cond_t cond;
- bool is_locked;
-#endif
- public:
- timed_mutex()
- {
- int const res=pthread_mutex_init(&m,NULL);
- if(res)
- {
- throw thread_resource_error();
- }
-#ifndef BOOST_PTHREAD_HAS_TIMEDLOCK
- int const res2=pthread_cond_init(&cond,NULL);
- if(res2)
- {
- BOOST_VERIFY(!pthread_mutex_destroy(&m));
- throw thread_resource_error();
- }
- is_locked=false;
-#endif
- }
- ~timed_mutex()
- {
- BOOST_VERIFY(!pthread_mutex_destroy(&m));
-#ifndef BOOST_PTHREAD_HAS_TIMEDLOCK
- BOOST_VERIFY(!pthread_cond_destroy(&cond));
-#endif
- }
-
- template<typename TimeDuration>
- bool timed_lock(TimeDuration const & relative_time)
- {
- return timed_lock(get_system_time()+relative_time);
- }
- bool timed_lock(boost::xtime const & absolute_time)
- {
- return timed_lock(system_time(absolute_time));
- }
-
-#ifdef BOOST_PTHREAD_HAS_TIMEDLOCK
- void lock()
- {
- BOOST_VERIFY(!pthread_mutex_lock(&m));
- }
-
- void unlock()
- {
- BOOST_VERIFY(!pthread_mutex_unlock(&m));
- }
-
- bool try_lock()
- {
- int const res=pthread_mutex_trylock(&m);
- BOOST_ASSERT(!res || res==EBUSY);
- return !res;
- }
- bool timed_lock(system_time const & abs_time)
- {
- struct timespec const timeout=detail::get_timespec(abs_time);
- int const res=pthread_mutex_timedlock(&m,&timeout);
- BOOST_ASSERT(!res || res==ETIMEDOUT);
- return !res;
- }
-
- typedef pthread_mutex_t* native_handle_type;
- native_handle_type native_handle()
- {
- return &m;
- }
-
-#else
- void lock()
- {
- boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
- while(is_locked)
- {
- BOOST_VERIFY(!pthread_cond_wait(&cond,&m));
- }
- is_locked=true;
- }
-
- void unlock()
- {
- boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
- is_locked=false;
- BOOST_VERIFY(!pthread_cond_signal(&cond));
- }
-
- bool try_lock()
- {
- boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
- if(is_locked)
- {
- return false;
- }
- is_locked=true;
- return true;
- }
-
- bool timed_lock(system_time const & abs_time)
- {
- struct timespec const timeout=detail::get_timespec(abs_time);
- boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
- while(is_locked)
- {
- int const cond_res=pthread_cond_timedwait(&cond,&m,&timeout);
- if(cond_res==ETIMEDOUT)
- {
- return false;
- }
- BOOST_ASSERT(!cond_res);
- }
- is_locked=true;
- return true;
- }
-#endif
-
- typedef unique_lock<timed_mutex> scoped_timed_lock;
- typedef detail::try_lock_wrapper<timed_mutex> scoped_try_lock;
- typedef scoped_timed_lock scoped_lock;
- };
-
-}
-
-#include <boost/config/abi_suffix.hpp>
-
-
-#endif
diff --git a/3rdParty/Boost/boost/thread/pthread/once.hpp b/3rdParty/Boost/boost/thread/pthread/once.hpp
deleted file mode 100644
index f278a57..0000000
--- a/3rdParty/Boost/boost/thread/pthread/once.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef BOOST_THREAD_PTHREAD_ONCE_HPP
-#define BOOST_THREAD_PTHREAD_ONCE_HPP
-
-// once.hpp
-//
-// (C) Copyright 2007-8 Anthony Williams
-//
-// 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)
-
-#include <boost/thread/detail/config.hpp>
-
-#include <pthread.h>
-#include <boost/assert.hpp>
-#include "pthread_mutex_scoped_lock.hpp"
-#include <boost/thread/pthread/pthread_mutex_scoped_lock.hpp>
-#include <boost/cstdint.hpp>
-
-#include <boost/config/abi_prefix.hpp>
-
-namespace boost
-{
-
- struct once_flag
- {
- boost::uintmax_t epoch;
- };
-
- namespace detail
- {
- BOOST_THREAD_DECL boost::uintmax_t& get_once_per_thread_epoch();
- BOOST_THREAD_DECL extern boost::uintmax_t once_global_epoch;
- BOOST_THREAD_DECL extern pthread_mutex_t once_epoch_mutex;
- BOOST_THREAD_DECL extern pthread_cond_t once_epoch_cv;
- }
-
-#define BOOST_ONCE_INITIAL_FLAG_VALUE 0
-#define BOOST_ONCE_INIT {BOOST_ONCE_INITIAL_FLAG_VALUE}
-
-
- // Based on Mike Burrows fast_pthread_once algorithm as described in
- // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2444.html
- template<typename Function>
- void call_once(once_flag& flag,Function f)
- {
- static boost::uintmax_t const uninitialized_flag=BOOST_ONCE_INITIAL_FLAG_VALUE;
- static boost::uintmax_t const being_initialized=uninitialized_flag+1;
- boost::uintmax_t const epoch=flag.epoch;
- boost::uintmax_t& this_thread_epoch=detail::get_once_per_thread_epoch();
-
- if(epoch<this_thread_epoch)
- {
- pthread::pthread_mutex_scoped_lock lk(&detail::once_epoch_mutex);
-
- while(flag.epoch<=being_initialized)
- {
- if(flag.epoch==uninitialized_flag)
- {
- flag.epoch=being_initialized;
- try
- {
- pthread::pthread_mutex_scoped_unlock relocker(&detail::once_epoch_mutex);
- f();
- }
- catch(...)
- {
- flag.epoch=uninitialized_flag;
- BOOST_VERIFY(!pthread_cond_broadcast(&detail::once_epoch_cv));
- throw;
- }
- flag.epoch=--detail::once_global_epoch;
- BOOST_VERIFY(!pthread_cond_broadcast(&detail::once_epoch_cv));
- }
- else
- {
- while(flag.epoch==being_initialized)
- {
- BOOST_VERIFY(!pthread_cond_wait(&detail::once_epoch_cv,&detail::once_epoch_mutex));
- }
- }
- }
- this_thread_epoch=detail::once_global_epoch;
- }
- }
-}
-
-#include <boost/config/abi_suffix.hpp>
-
-#endif
diff --git a/3rdParty/Boost/boost/thread/pthread/pthread_mutex_scoped_lock.hpp b/3rdParty/Boost/boost/thread/pthread/pthread_mutex_scoped_lock.hpp
deleted file mode 100644
index 2407f91..0000000
--- a/3rdParty/Boost/boost/thread/pthread/pthread_mutex_scoped_lock.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef BOOST_PTHREAD_MUTEX_SCOPED_LOCK_HPP
-#define BOOST_PTHREAD_MUTEX_SCOPED_LOCK_HPP
-// (C) Copyright 2007-8 Anthony Williams
-//
-// 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)
-
-#include <pthread.h>
-#include <boost/assert.hpp>
-
-#include <boost/config/abi_prefix.hpp>
-
-namespace boost
-{
- namespace pthread
- {
- class pthread_mutex_scoped_lock
- {
- pthread_mutex_t* m;
- public:
- explicit pthread_mutex_scoped_lock(pthread_mutex_t* m_):
- m(m_)
- {
- BOOST_VERIFY(!pthread_mutex_lock(m));
- }
- ~pthread_mutex_scoped_lock()
- {
- BOOST_VERIFY(!pthread_mutex_unlock(m));
- }
-
- };
-
- class pthread_mutex_scoped_unlock
- {
- pthread_mutex_t* m;
- public:
- explicit pthread_mutex_scoped_unlock(pthread_mutex_t* m_):
- m(m_)
- {
- BOOST_VERIFY(!pthread_mutex_unlock(m));
- }
- ~pthread_mutex_scoped_unlock()
- {
- BOOST_VERIFY(!pthread_mutex_lock(m));
- }
-
- };
- }
-}
-
-#include <boost/config/abi_suffix.hpp>
-
-#endif
diff --git a/3rdParty/Boost/boost/thread/pthread/recursive_mutex.hpp b/3rdParty/Boost/boost/thread/pthread/recursive_mutex.hpp
deleted file mode 100644
index f3f7bf1..0000000
--- a/3rdParty/Boost/boost/thread/pthread/recursive_mutex.hpp
+++ /dev/null
@@ -1,266 +0,0 @@
-#ifndef BOOST_THREAD_PTHREAD_RECURSIVE_MUTEX_HPP
-#define BOOST_THREAD_PTHREAD_RECURSIVE_MUTEX_HPP
-// (C) Copyright 2007-8 Anthony Williams
-// 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)
-
-#include <pthread.h>
-#include <boost/utility.hpp>
-#include <boost/thread/exceptions.hpp>
-#include <boost/thread/locks.hpp>
-#include <boost/thread/thread_time.hpp>
-#include <boost/assert.hpp>
-#ifndef _WIN32
-#include <unistd.h>
-#endif
-#include <boost/date_time/posix_time/conversion.hpp>
-#include <errno.h>
-#include "timespec.hpp"
-#include "pthread_mutex_scoped_lock.hpp"
-
-#ifdef _POSIX_TIMEOUTS
-#if _POSIX_TIMEOUTS >= 0
-#define BOOST_PTHREAD_HAS_TIMEDLOCK
-#endif
-#endif
-
-#include <boost/config/abi_prefix.hpp>
-
-namespace boost
-{
- class recursive_mutex:
- boost::noncopyable
- {
- private:
- pthread_mutex_t m;
- public:
- recursive_mutex()
- {
- pthread_mutexattr_t attr;
-
- int const init_attr_res=pthread_mutexattr_init(&attr);
- if(init_attr_res)
- {
- throw thread_resource_error();
- }
- int const set_attr_res=pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE);
- if(set_attr_res)
- {
- throw thread_resource_error();
- }
-
- int const res=pthread_mutex_init(&m,&attr);
- if(res)
- {
- throw thread_resource_error();
- }
- BOOST_VERIFY(!pthread_mutexattr_destroy(&attr));
- }
- ~recursive_mutex()
- {
- BOOST_VERIFY(!pthread_mutex_destroy(&m));
- }
-
- void lock()
- {
- BOOST_VERIFY(!pthread_mutex_lock(&m));
- }
-
- void unlock()
- {
- BOOST_VERIFY(!pthread_mutex_unlock(&m));
- }
-
- bool try_lock()
- {
- int const res=pthread_mutex_trylock(&m);
- BOOST_ASSERT(!res || res==EBUSY);
- return !res;
- }
-
- typedef pthread_mutex_t* native_handle_type;
- native_handle_type native_handle()
- {
- return &m;
- }
-
- typedef unique_lock<recursive_mutex> scoped_lock;
- typedef detail::try_lock_wrapper<recursive_mutex> scoped_try_lock;
- };
-
- typedef recursive_mutex recursive_try_mutex;
-
- class recursive_timed_mutex:
- boost::noncopyable
- {
- private:
- pthread_mutex_t m;
-#ifndef BOOST_PTHREAD_HAS_TIMEDLOCK
- pthread_cond_t cond;
- bool is_locked;
- pthread_t owner;
- unsigned count;
-#endif
- public:
- recursive_timed_mutex()
- {
-#ifdef BOOST_PTHREAD_HAS_TIMEDLOCK
- pthread_mutexattr_t attr;
-
- int const init_attr_res=pthread_mutexattr_init(&attr);
- if(init_attr_res)
- {
- throw thread_resource_error();
- }
- int const set_attr_res=pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE);
- if(set_attr_res)
- {
- throw thread_resource_error();
- }
-
- int const res=pthread_mutex_init(&m,&attr);
- if(res)
- {
- BOOST_VERIFY(!pthread_mutexattr_destroy(&attr));
- throw thread_resource_error();
- }
- BOOST_VERIFY(!pthread_mutexattr_destroy(&attr));
-#else
- int const res=pthread_mutex_init(&m,NULL);
- if(res)
- {
- throw thread_resource_error();
- }
- int const res2=pthread_cond_init(&cond,NULL);
- if(res2)
- {
- BOOST_VERIFY(!pthread_mutex_destroy(&m));
- throw thread_resource_error();
- }
- is_locked=false;
- count=0;
-#endif
- }
- ~recursive_timed_mutex()
- {
- BOOST_VERIFY(!pthread_mutex_destroy(&m));
-#ifndef BOOST_PTHREAD_HAS_TIMEDLOCK
- BOOST_VERIFY(!pthread_cond_destroy(&cond));
-#endif
- }
-
- template<typename TimeDuration>
- bool timed_lock(TimeDuration const & relative_time)
- {
- return timed_lock(get_system_time()+relative_time);
- }
-
-#ifdef BOOST_PTHREAD_HAS_TIMEDLOCK
- void lock()
- {
- BOOST_VERIFY(!pthread_mutex_lock(&m));
- }
-
- void unlock()
- {
- BOOST_VERIFY(!pthread_mutex_unlock(&m));
- }
-
- bool try_lock()
- {
- int const res=pthread_mutex_trylock(&m);
- BOOST_ASSERT(!res || res==EBUSY);
- return !res;
- }
- bool timed_lock(system_time const & abs_time)
- {
- struct timespec const timeout=detail::get_timespec(abs_time);
- int const res=pthread_mutex_timedlock(&m,&timeout);
- BOOST_ASSERT(!res || res==ETIMEDOUT);
- return !res;
- }
-
- typedef pthread_mutex_t* native_handle_type;
- native_handle_type native_handle()
- {
- return &m;
- }
-
-#else
- void lock()
- {
- boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
- if(is_locked && pthread_equal(owner,pthread_self()))
- {
- ++count;
- return;
- }
-
- while(is_locked)
- {
- BOOST_VERIFY(!pthread_cond_wait(&cond,&m));
- }
- is_locked=true;
- ++count;
- owner=pthread_self();
- }
-
- void unlock()
- {
- boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
- if(!--count)
- {
- is_locked=false;
- }
- BOOST_VERIFY(!pthread_cond_signal(&cond));
- }
-
- bool try_lock()
- {
- boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
- if(is_locked && !pthread_equal(owner,pthread_self()))
- {
- return false;
- }
- is_locked=true;
- ++count;
- owner=pthread_self();
- return true;
- }
-
- bool timed_lock(system_time const & abs_time)
- {
- struct timespec const timeout=detail::get_timespec(abs_time);
- boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
- if(is_locked && pthread_equal(owner,pthread_self()))
- {
- ++count;
- return true;
- }
- while(is_locked)
- {
- int const cond_res=pthread_cond_timedwait(&cond,&m,&timeout);
- if(cond_res==ETIMEDOUT)
- {
- return false;
- }
- BOOST_ASSERT(!cond_res);
- }
- is_locked=true;
- ++count;
- owner=pthread_self();
- return true;
- }
-#endif
-
- typedef unique_lock<recursive_timed_mutex> scoped_timed_lock;
- typedef detail::try_lock_wrapper<recursive_timed_mutex> scoped_try_lock;
- typedef scoped_timed_lock scoped_lock;
- };
-
-}
-
-#include <boost/config/abi_suffix.hpp>
-
-#endif
diff --git a/3rdParty/Boost/boost/thread/pthread/shared_mutex.hpp b/3rdParty/Boost/boost/thread/pthread/shared_mutex.hpp
deleted file mode 100644
index 3ce4e23..0000000
--- a/3rdParty/Boost/boost/thread/pthread/shared_mutex.hpp
+++ /dev/null
@@ -1,303 +0,0 @@
-#ifndef BOOST_THREAD_PTHREAD_SHARED_MUTEX_HPP
-#define BOOST_THREAD_PTHREAD_SHARED_MUTEX_HPP
-
-// (C) Copyright 2006-8 Anthony Williams
-//
-// 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)
-
-#include <boost/assert.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/thread/thread.hpp>
-#include <boost/thread/condition_variable.hpp>
-
-#include <boost/config/abi_prefix.hpp>
-
-namespace boost
-{
- class shared_mutex
- {
- private:
- struct state_data
- {
- unsigned shared_count;
- bool exclusive;
- bool upgrade;
- bool exclusive_waiting_blocked;
- };
-
-
-
- state_data state;
- boost::mutex state_change;
- boost::condition_variable shared_cond;
- boost::condition_variable exclusive_cond;
- boost::condition_variable upgrade_cond;
-
- void release_waiters()
- {
- exclusive_cond.notify_one();
- shared_cond.notify_all();
- }
-
-
- public:
- shared_mutex()
- {
- state_data state_={0,0,0,0};
- state=state_;
- }
-
- ~shared_mutex()
- {
- }
-
- void lock_shared()
- {
- boost::this_thread::disable_interruption do_not_disturb;
- boost::mutex::scoped_lock lk(state_change);
-
- while(state.exclusive || state.exclusive_waiting_blocked)
- {
- shared_cond.wait(lk);
- }
- ++state.shared_count;
- }
-
- bool try_lock_shared()
- {
- boost::mutex::scoped_lock lk(state_change);
-
- if(state.exclusive || state.exclusive_waiting_blocked)
- {
- return false;
- }
- else
- {
- ++state.shared_count;
- return true;
- }
- }
-
- bool timed_lock_shared(system_time const& timeout)
- {
- boost::this_thread::disable_interruption do_not_disturb;
- boost::mutex::scoped_lock lk(state_change);
-
- while(state.exclusive || state.exclusive_waiting_blocked)
- {
- if(!shared_cond.timed_wait(lk,timeout))
- {
- return false;
- }
- }
- ++state.shared_count;
- return true;
- }
-
- template<typename TimeDuration>
- bool timed_lock_shared(TimeDuration const & relative_time)
- {
- return timed_lock_shared(get_system_time()+relative_time);
- }
-
- void unlock_shared()
- {
- boost::mutex::scoped_lock lk(state_change);
- bool const last_reader=!--state.shared_count;
-
- if(last_reader)
- {
- if(state.upgrade)
- {
- state.upgrade=false;
- state.exclusive=true;
- upgrade_cond.notify_one();
- }
- else
- {
- state.exclusive_waiting_blocked=false;
- }
- release_waiters();
- }
- }
-
- void lock()
- {
- boost::this_thread::disable_interruption do_not_disturb;
- boost::mutex::scoped_lock lk(state_change);
-
- while(state.shared_count || state.exclusive)
- {
- state.exclusive_waiting_blocked=true;
- exclusive_cond.wait(lk);
- }
- state.exclusive=true;
- }
-
- bool timed_lock(system_time const& timeout)
- {
- boost::this_thread::disable_interruption do_not_disturb;
- boost::mutex::scoped_lock lk(state_change);
-
- while(state.shared_count || state.exclusive)
- {
- state.exclusive_waiting_blocked=true;
- if(!exclusive_cond.timed_wait(lk,timeout))
- {
- if(state.shared_count || state.exclusive)
- {
- state.exclusive_waiting_blocked=false;
- exclusive_cond.notify_one();
- return false;
- }
- break;
- }
- }
- state.exclusive=true;
- return true;
- }
-
- template<typename TimeDuration>
- bool timed_lock(TimeDuration const & relative_time)
- {
- return timed_lock(get_system_time()+relative_time);
- }
-
- bool try_lock()
- {
- boost::mutex::scoped_lock lk(state_change);
-
- if(state.shared_count || state.exclusive)
- {
- return false;
- }
- else
- {
- state.exclusive=true;
- return true;
- }
-
- }
-
- void unlock()
- {
- boost::mutex::scoped_lock lk(state_change);
- state.exclusive=false;
- state.exclusive_waiting_blocked=false;
- release_waiters();
- }
-
- void lock_upgrade()
- {
- boost::this_thread::disable_interruption do_not_disturb;
- boost::mutex::scoped_lock lk(state_change);
- while(state.exclusive || state.exclusive_waiting_blocked || state.upgrade)
- {
- shared_cond.wait(lk);
- }
- ++state.shared_count;
- state.upgrade=true;
- }
-
- bool timed_lock_upgrade(system_time const& timeout)
- {
- boost::this_thread::disable_interruption do_not_disturb;
- boost::mutex::scoped_lock lk(state_change);
- while(state.exclusive || state.exclusive_waiting_blocked || state.upgrade)
- {
- if(!shared_cond.timed_wait(lk,timeout))
- {
- if(state.exclusive || state.exclusive_waiting_blocked || state.upgrade)
- {
- return false;
- }
- break;
- }
- }
- ++state.shared_count;
- state.upgrade=true;
- return true;
- }
-
- template<typename TimeDuration>
- bool timed_lock_upgrade(TimeDuration const & relative_time)
- {
- return timed_lock(get_system_time()+relative_time);
- }
-
- bool try_lock_upgrade()
- {
- boost::mutex::scoped_lock lk(state_change);
- if(state.exclusive || state.exclusive_waiting_blocked || state.upgrade)
- {
- return false;
- }
- else
- {
- ++state.shared_count;
- state.upgrade=true;
- return true;
- }
- }
-
- void unlock_upgrade()
- {
- boost::mutex::scoped_lock lk(state_change);
- state.upgrade=false;
- bool const last_reader=!--state.shared_count;
-
- if(last_reader)
- {
- state.exclusive_waiting_blocked=false;
- release_waiters();
- }
- }
-
- void unlock_upgrade_and_lock()
- {
- boost::this_thread::disable_interruption do_not_disturb;
- boost::mutex::scoped_lock lk(state_change);
- --state.shared_count;
- while(state.shared_count)
- {
- upgrade_cond.wait(lk);
- }
- state.upgrade=false;
- state.exclusive=true;
- }
-
- void unlock_and_lock_upgrade()
- {
- boost::mutex::scoped_lock lk(state_change);
- state.exclusive=false;
- state.upgrade=true;
- ++state.shared_count;
- state.exclusive_waiting_blocked=false;
- release_waiters();
- }
-
- void unlock_and_lock_shared()
- {
- boost::mutex::scoped_lock lk(state_change);
- state.exclusive=false;
- ++state.shared_count;
- state.exclusive_waiting_blocked=false;
- release_waiters();
- }
-
- void unlock_upgrade_and_lock_shared()
- {
- boost::mutex::scoped_lock lk(state_change);
- state.upgrade=false;
- state.exclusive_waiting_blocked=false;
- release_waiters();
- }
- };
-}
-
-#include <boost/config/abi_suffix.hpp>
-
-#endif
diff --git a/3rdParty/Boost/boost/thread/pthread/thread_data.hpp b/3rdParty/Boost/boost/thread/pthread/thread_data.hpp
deleted file mode 100644
index 244035b..0000000
--- a/3rdParty/Boost/boost/thread/pthread/thread_data.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-#ifndef BOOST_THREAD_PTHREAD_THREAD_DATA_HPP
-#define BOOST_THREAD_PTHREAD_THREAD_DATA_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 Anthony Williams
-
-#include <boost/thread/detail/config.hpp>
-#include <boost/thread/exceptions.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/enable_shared_from_this.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/optional.hpp>
-#include <pthread.h>
-#include "condition_variable_fwd.hpp"
-
-#include <boost/config/abi_prefix.hpp>
-
-namespace boost
-{
- class thread;
-
- namespace detail
- {
- struct thread_exit_callback_node;
- struct tss_data_node;
-
- struct thread_data_base;
- typedef boost::shared_ptr<thread_data_base> thread_data_ptr;
-
- struct BOOST_THREAD_DECL thread_data_base:
- enable_shared_from_this<thread_data_base>
- {
- thread_data_ptr self;
- pthread_t thread_handle;
- boost::mutex data_mutex;
- boost::condition_variable done_condition;
- boost::mutex sleep_mutex;
- boost::condition_variable sleep_condition;
- bool done;
- bool join_started;
- bool joined;
- boost::detail::thread_exit_callback_node* thread_exit_callbacks;
- boost::detail::tss_data_node* tss_data;
- bool interrupt_enabled;
- bool interrupt_requested;
- pthread_cond_t* current_cond;
-
- thread_data_base():
- done(false),join_started(false),joined(false),
- thread_exit_callbacks(0),tss_data(0),
- interrupt_enabled(true),
- interrupt_requested(false),
- current_cond(0)
- {}
- virtual ~thread_data_base();
-
- typedef pthread_t native_handle_type;
-
- virtual void run()=0;
- };
-
- BOOST_THREAD_DECL thread_data_base* get_current_thread_data();
-
- class interruption_checker
- {
- thread_data_base* const thread_info;
-
- void check_for_interruption()
- {
- if(thread_info->interrupt_requested)
- {
- thread_info->interrupt_requested=false;
- throw thread_interrupted();
- }
- }
-
- void operator=(interruption_checker&);
- public:
- explicit interruption_checker(pthread_cond_t* cond):
- thread_info(detail::get_current_thread_data())
- {
- if(thread_info && thread_info->interrupt_enabled)
- {
- lock_guard<mutex> guard(thread_info->data_mutex);
- check_for_interruption();
- thread_info->current_cond=cond;
- }
- }
- ~interruption_checker()
- {
- if(thread_info && thread_info->interrupt_enabled)
- {
- lock_guard<mutex> guard(thread_info->data_mutex);
- thread_info->current_cond=NULL;
- check_for_interruption();
- }
- }
- };
- }
-
- namespace this_thread
- {
- void BOOST_THREAD_DECL yield();
-
- void BOOST_THREAD_DECL sleep(system_time const& abs_time);
-
- template<typename TimeDuration>
- inline void sleep(TimeDuration const& rel_time)
- {
- this_thread::sleep(get_system_time()+rel_time);
- }
- }
-}
-
-#include <boost/config/abi_suffix.hpp>
-
-#endif
diff --git a/3rdParty/Boost/boost/thread/pthread/thread_heap_alloc.hpp b/3rdParty/Boost/boost/thread/pthread/thread_heap_alloc.hpp
deleted file mode 100644
index 7cc0aa0..0000000
--- a/3rdParty/Boost/boost/thread/pthread/thread_heap_alloc.hpp
+++ /dev/null
@@ -1,242 +0,0 @@
-// 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 2008 Anthony Williams
-#ifndef THREAD_HEAP_ALLOC_PTHREAD_HPP
-#define THREAD_HEAP_ALLOC_PTHREAD_HPP
-
-#include <boost/config/abi_prefix.hpp>
-
-namespace boost
-{
- namespace detail
- {
- template<typename T>
- inline T* heap_new()
- {
- return new T();
- }
-
-#ifdef BOOST_HAS_RVALUE_REFS
- template<typename T,typename A1>
- inline T* heap_new(A1&& a1)
- {
- return new T(static_cast<A1&&>(a1));
- }
- template<typename T,typename A1,typename A2>
- inline T* heap_new(A1&& a1,A2&& a2)
- {
- return new T(static_cast<A1&&>(a1),static_cast<A2&&>(a2));
- }
- template<typename T,typename A1,typename A2,typename A3>
- inline T* heap_new(A1&& a1,A2&& a2,A3&& a3)
- {
- return new T(static_cast<A1&&>(a1),static_cast<A2&&>(a2),
- static_cast<A3&&>(a3));
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1&& a1,A2&& a2,A3&& a3,A4&& a4)
- {
- return new T(static_cast<A1&&>(a1),static_cast<A2&&>(a2),
- static_cast<A3&&>(a3),static_cast<A4&&>(a4));
- }
-#else
- template<typename T,typename A1>
- inline T* heap_new_impl(A1 a1)
- {
- return new T(a1);
- }
- template<typename T,typename A1,typename A2>
- inline T* heap_new_impl(A1 a1,A2 a2)
- {
- return new T(a1,a2);
- }
- template<typename T,typename A1,typename A2,typename A3>
- inline T* heap_new_impl(A1 a1,A2 a2,A3 a3)
- {
- return new T(a1,a2,a3);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new_impl(A1 a1,A2 a2,A3 a3,A4 a4)
- {
- return new T(a1,a2,a3,a4);
- }
-
- template<typename T,typename A1>
- inline T* heap_new(A1 const& a1)
- {
- return heap_new_impl<T,A1 const&>(a1);
- }
- template<typename T,typename A1>
- inline T* heap_new(A1& a1)
- {
- return heap_new_impl<T,A1&>(a1);
- }
-
- template<typename T,typename A1,typename A2>
- inline T* heap_new(A1 const& a1,A2 const& a2)
- {
- return heap_new_impl<T,A1 const&,A2 const&>(a1,a2);
- }
- template<typename T,typename A1,typename A2>
- inline T* heap_new(A1& a1,A2 const& a2)
- {
- return heap_new_impl<T,A1&,A2 const&>(a1,a2);
- }
- template<typename T,typename A1,typename A2>
- inline T* heap_new(A1 const& a1,A2& a2)
- {
- return heap_new_impl<T,A1 const&,A2&>(a1,a2);
- }
- template<typename T,typename A1,typename A2>
- inline T* heap_new(A1& a1,A2& a2)
- {
- return heap_new_impl<T,A1&,A2&>(a1,a2);
- }
-
- template<typename T,typename A1,typename A2,typename A3>
- inline T* heap_new(A1 const& a1,A2 const& a2,A3 const& a3)
- {
- return heap_new_impl<T,A1 const&,A2 const&,A3 const&>(a1,a2,a3);
- }
- template<typename T,typename A1,typename A2,typename A3>
- inline T* heap_new(A1& a1,A2 const& a2,A3 const& a3)
- {
- return heap_new_impl<T,A1&,A2 const&,A3 const&>(a1,a2,a3);
- }
- template<typename T,typename A1,typename A2,typename A3>
- inline T* heap_new(A1 const& a1,A2& a2,A3 const& a3)
- {
- return heap_new_impl<T,A1 const&,A2&,A3 const&>(a1,a2,a3);
- }
- template<typename T,typename A1,typename A2,typename A3>
- inline T* heap_new(A1& a1,A2& a2,A3 const& a3)
- {
- return heap_new_impl<T,A1&,A2&,A3 const&>(a1,a2,a3);
- }
-
- template<typename T,typename A1,typename A2,typename A3>
- inline T* heap_new(A1 const& a1,A2 const& a2,A3& a3)
- {
- return heap_new_impl<T,A1 const&,A2 const&,A3&>(a1,a2,a3);
- }
- template<typename T,typename A1,typename A2,typename A3>
- inline T* heap_new(A1& a1,A2 const& a2,A3& a3)
- {
- return heap_new_impl<T,A1&,A2 const&,A3&>(a1,a2,a3);
- }
- template<typename T,typename A1,typename A2,typename A3>
- inline T* heap_new(A1 const& a1,A2& a2,A3& a3)
- {
- return heap_new_impl<T,A1 const&,A2&,A3&>(a1,a2,a3);
- }
- template<typename T,typename A1,typename A2,typename A3>
- inline T* heap_new(A1& a1,A2& a2,A3& a3)
- {
- return heap_new_impl<T,A1&,A2&,A3&>(a1,a2,a3);
- }
-
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1 const& a1,A2 const& a2,A3 const& a3,A4 const& a4)
- {
- return heap_new_impl<T,A1 const&,A2 const&,A3 const&,A4 const&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1& a1,A2 const& a2,A3 const& a3,A4 const& a4)
- {
- return heap_new_impl<T,A1&,A2 const&,A3 const&,A4 const&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1 const& a1,A2& a2,A3 const& a3,A4 const& a4)
- {
- return heap_new_impl<T,A1 const&,A2&,A3 const&,A4 const&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1& a1,A2& a2,A3 const& a3,A4 const& a4)
- {
- return heap_new_impl<T,A1&,A2&,A3 const&,A4 const&>(a1,a2,a3,a4);
- }
-
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1 const& a1,A2 const& a2,A3& a3,A4 const& a4)
- {
- return heap_new_impl<T,A1 const&,A2 const&,A3&,A4 const&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1& a1,A2 const& a2,A3& a3,A4 const& a4)
- {
- return heap_new_impl<T,A1&,A2 const&,A3&,A4 const&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1 const& a1,A2& a2,A3& a3,A4 const& a4)
- {
- return heap_new_impl<T,A1 const&,A2&,A3&,A4 const&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1& a1,A2& a2,A3& a3,A4 const& a4)
- {
- return heap_new_impl<T,A1&,A2&,A3&,A4 const&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1 const& a1,A2 const& a2,A3 const& a3,A4& a4)
- {
- return heap_new_impl<T,A1 const&,A2 const&,A3 const&,A4&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1& a1,A2 const& a2,A3 const& a3,A4& a4)
- {
- return heap_new_impl<T,A1&,A2 const&,A3 const&,A4&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1 const& a1,A2& a2,A3 const& a3,A4& a4)
- {
- return heap_new_impl<T,A1 const&,A2&,A3 const&,A4&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1& a1,A2& a2,A3 const& a3,A4& a4)
- {
- return heap_new_impl<T,A1&,A2&,A3 const&,A4&>(a1,a2,a3,a4);
- }
-
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1 const& a1,A2 const& a2,A3& a3,A4& a4)
- {
- return heap_new_impl<T,A1 const&,A2 const&,A3&,A4&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1& a1,A2 const& a2,A3& a3,A4& a4)
- {
- return heap_new_impl<T,A1&,A2 const&,A3&,A4&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1 const& a1,A2& a2,A3& a3,A4& a4)
- {
- return heap_new_impl<T,A1 const&,A2&,A3&,A4&>(a1,a2,a3,a4);
- }
- template<typename T,typename A1,typename A2,typename A3,typename A4>
- inline T* heap_new(A1& a1,A2& a2,A3& a3,A4& a4)
- {
- return heap_new_impl<T,A1&,A2&,A3&,A4&>(a1,a2,a3,a4);
- }
-
-#endif
- template<typename T>
- inline void heap_delete(T* data)
- {
- delete data;
- }
-
- template<typename T>
- struct do_heap_delete
- {
- void operator()(T* data) const
- {
- detail::heap_delete(data);
- }
- };
- }
-}
-
-#include <boost/config/abi_suffix.hpp>
-
-#endif
diff --git a/3rdParty/Boost/boost/thread/pthread/timespec.hpp b/3rdParty/Boost/boost/thread/pthread/timespec.hpp
deleted file mode 100644
index d7465c1..0000000
--- a/3rdParty/Boost/boost/thread/pthread/timespec.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef BOOST_THREAD_PTHREAD_TIMESPEC_HPP
-#define BOOST_THREAD_PTHREAD_TIMESPEC_HPP
-// (C) Copyright 2007-8 Anthony Williams
-//
-// 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)
-
-#include <boost/thread/thread_time.hpp>
-#include <boost/date_time/posix_time/conversion.hpp>
-#include <pthread.h>
-#ifndef _WIN32
-#include <unistd.h>
-#endif
-
-#include <boost/config/abi_prefix.hpp>
-
-namespace boost
-{
- namespace detail
- {
- inline struct timespec get_timespec(boost::system_time const& abs_time)
- {
- struct timespec timeout={0,0};
- boost::posix_time::time_duration const time_since_epoch=abs_time-boost::posix_time::from_time_t(0);
-
- timeout.tv_sec=time_since_epoch.total_seconds();
- timeout.tv_nsec=(long)(time_since_epoch.fractional_seconds()*(1000000000l/time_since_epoch.ticks_per_second()));
- return timeout;
- }
- }
-}
-
-#include <boost/config/abi_suffix.hpp>
-
-#endif