1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- // Copyright (C) 2012 Vicente J. Botet Escriba
- //
- // 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)
- #ifndef BOOST_THREAD_DETAIL_LOG_HPP
- #define BOOST_THREAD_DETAIL_LOG_HPP
- #include <boost/thread/detail/config.hpp>
- #if defined BOOST_THREAD_USES_LOG
- #include <boost/thread/recursive_mutex.hpp>
- #include <boost/thread/lock_guard.hpp>
- #if defined BOOST_THREAD_USES_LOG_THREAD_ID
- #include <boost/thread/thread.hpp>
- #endif
- #include <iostream>
- namespace boost
- {
- namespace thread_detail
- {
- inline boost::recursive_mutex& terminal_mutex()
- {
- static boost::recursive_mutex mtx;
- return mtx;
- }
- }
- }
- #if defined BOOST_THREAD_USES_LOG_THREAD_ID
- #define BOOST_THREAD_LOG \
- { \
- boost::lock_guard<boost::recursive_mutex> _lk_(boost::thread_detail::terminal_mutex()); \
- std::cout << boost::this_thread::get_id() << " - "<<__FILE__<<"["<<__LINE__<<"] " <<std::dec
- #else
- #define BOOST_THREAD_LOG \
- { \
- boost::lock_guard<boost::recursive_mutex> _lk_(boost::thread_detail::terminal_mutex()); \
- std::cout << __FILE__<<"["<<__LINE__<<"] " <<std::dec
- #endif
- #define BOOST_THREAD_END_LOG \
- std::dec << std::endl; \
- }
- #else
- namespace boost
- {
- namespace thread_detail
- {
- struct dummy_stream_t
- {
- };
- template <typename T>
- inline dummy_stream_t const& operator<<(dummy_stream_t const& os, T)
- {
- return os;
- }
- inline dummy_stream_t const& operator<<(dummy_stream_t const& os, dummy_stream_t const&)
- {
- return os;
- }
- BOOST_CONSTEXPR_OR_CONST dummy_stream_t dummy_stream = {};
- }
- }
- #ifdef BOOST_MSVC
- #define BOOST_THREAD_LOG \
- __pragma(warning(suppress:4127)) /* conditional expression is constant */ \
- if (true) {} else boost::thread_detail::dummy_stream
- #else
- #define BOOST_THREAD_LOG if (true) {} else boost::thread_detail::dummy_stream
- #endif
- #define BOOST_THREAD_END_LOG boost::thread_detail::dummy_stream
- #endif
- #define BOOST_THREAD_TRACE BOOST_THREAD_LOG << BOOST_THREAD_END_LOG
- #ifdef BOOST_MSVC
- #define BOOST_DETAIL_THREAD_LOG \
- __pragma(warning(suppress:4127)) /* conditional expression is constant */ \
- if (false) {} else std::cout << std::endl << __FILE__ << "[" << __LINE__ << "]"
- #else
- #define BOOST_DETAIL_THREAD_LOG \
- if (false) {} else std::cout << std::endl << __FILE__ << "[" << __LINE__ << "]"
- #endif
- #endif // header
|