Ticket #5719: socket_ops.ipp.patch
File socket_ops.ipp.patch, 1.9 KB (added by , 11 years ago) |
---|
-
\boost\asio\detail\impl\socket_ops.ipp
old new 23 23 #include <cstring> 24 24 #include <cerrno> 25 25 #include <new> 26 26 #include <boost/asio/detail/socket_ops.hpp> 27 27 #include <boost/asio/error.hpp> 28 28 29 #include <boost/asio/detail/mutex.hpp> 29 30 #include <boost/asio/detail/push_options.hpp> 30 31 31 32 namespace boost { 32 33 namespace asio { 33 34 namespace detail { 34 35 namespace socket_ops { … … 2771 2772 #else 2772 2773 sprintf(serv, "%u", ntohs(port)); 2773 2774 #endif 2774 2775 } 2775 2776 else 2776 2777 { 2777 #if defined(BOOST_HAS_THREADS) && defined(BOOST_HAS_PTHREADS) \ 2778 && !defined(BOOST_ASIO_DISABLE_THREADS) 2779 static ::pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; 2780 ::pthread_mutex_lock(&mutex); 2781 #endif // defined(BOOST_HAS_THREADS) && defined(BOOST_HAS_PTHREADS) 2782 // && !defined(BOOST_ASIO_DISABLE_THREADS) 2778 #if !defined(BOOST_WINDOWS) 2779 static boost::asio::detail::mutex mutex; 2780 boost::asio::detail::mutex::scoped_lock lock(mutex); 2781 #endif // !defined(BOOST_WINDOWS) 2783 2782 servent* sptr = ::getservbyport(port, (flags & NI_DGRAM) ? "udp" : 0); 2784 2783 if (sptr && sptr->s_name && sptr->s_name[0] != '\0') 2785 2784 { 2786 2785 gai_strcpy(serv, sptr->s_name, servlen); 2787 2786 } 2788 2787 else … … 2794 2793 #if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(UNDER_CE) 2795 2794 sprintf_s(serv, servlen, "%u", ntohs(port)); 2796 2795 #else 2797 2796 sprintf(serv, "%u", ntohs(port)); 2798 2797 #endif 2799 2798 } 2800 #if defined(BOOST_HAS_THREADS) && defined(BOOST_HAS_PTHREADS) \2801 && !defined(BOOST_ASIO_DISABLE_THREADS)2802 ::pthread_mutex_unlock(&mutex);2803 #endif // defined(BOOST_HAS_THREADS) && defined(BOOST_HAS_PTHREADS)2804 // && !defined(BOOST_ASIO_DISABLE_THREADS)2805 2799 } 2806 2800 } 2807 2801 2808 2802 ec = boost::system::error_code(); 2809 2803 return ec; 2810 2804 }