File indexing completed on 2025-01-18 09:28:36
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef BOOST_ASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP
0012 #define BOOST_ASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP
0013
0014 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
0015 # pragma once
0016 #endif
0017
0018 #include <boost/asio/detail/config.hpp>
0019
0020 #if defined(BOOST_ASIO_WINDOWS)
0021
0022 #include <boost/asio/detail/throw_error.hpp>
0023 #include <boost/asio/detail/win_tss_ptr.hpp>
0024 #include <boost/asio/error.hpp>
0025
0026 #include <boost/asio/detail/push_options.hpp>
0027
0028 namespace boost {
0029 namespace asio {
0030 namespace detail {
0031
0032 DWORD win_tss_ptr_create()
0033 {
0034 #if defined(UNDER_CE)
0035 const DWORD out_of_indexes = 0xFFFFFFFF;
0036 #else
0037 const DWORD out_of_indexes = TLS_OUT_OF_INDEXES;
0038 #endif
0039
0040 DWORD tss_key = ::TlsAlloc();
0041 if (tss_key == out_of_indexes)
0042 {
0043 DWORD last_error = ::GetLastError();
0044 boost::system::error_code ec(last_error,
0045 boost::asio::error::get_system_category());
0046 boost::asio::detail::throw_error(ec, "tss");
0047 }
0048 return tss_key;
0049 }
0050
0051 }
0052 }
0053 }
0054
0055 #include <boost/asio/detail/pop_options.hpp>
0056
0057 #endif
0058
0059 #endif