Chris@16: #ifndef BOOST_THREAD_ONCE_HPP Chris@16: #define BOOST_THREAD_ONCE_HPP Chris@16: Chris@16: // once.hpp Chris@16: // Chris@16: // (C) Copyright 2006-7 Anthony Williams Chris@16: // Chris@16: // Distributed under the Boost Software License, Version 1.0. (See Chris@16: // accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: #include Chris@16: #include Chris@16: #if defined(BOOST_THREAD_PLATFORM_WIN32) Chris@16: #include Chris@16: #elif defined(BOOST_THREAD_PLATFORM_PTHREAD) Chris@16: #if defined BOOST_THREAD_ONCE_FAST_EPOCH Chris@16: #include Chris@16: #elif defined BOOST_THREAD_ONCE_ATOMIC Chris@16: #include Chris@16: #else Chris@16: #error "Once Not Implemented" Chris@16: #endif Chris@16: #else Chris@16: #error "Boost threads unavailable on this platform" Chris@16: #endif Chris@16: Chris@16: #include Chris@16: Chris@16: namespace boost Chris@16: { Chris@16: // template void Chris@16: // call_once(once_flag& flag, Callable&& func, Args&&... args); Chris@16: template Chris@16: inline void call_once(Function func,once_flag& flag) Chris@16: //inline void call_once(void (*func)(),once_flag& flag) Chris@16: { Chris@16: call_once(flag,func); Chris@16: } Chris@16: } Chris@16: Chris@16: #include Chris@16: Chris@16: #endif