$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r52459 - in branches/release: . boost/asio/detail
From: chris_at_[hidden]
Date: 2009-04-17 18:32:21
Author: chris_kohlhoff
Date: 2009-04-17 18:32:20 EDT (Fri, 17 Apr 2009)
New Revision: 52459
URL: http://svn.boost.org/trac/boost/changeset/52459
Log:
Merged revisions 52412,52419 via svnmerge from trunk.
........
  r52412 | chris_kohlhoff | 2009-04-16 13:27:58 +1000 (Thu, 16 Apr 2009) | 3 lines
  
  Fix incompatibility between asio and ncurses.h due to the latter defining
  a macro called "timeout". Fixes #2156.
........
  r52419 | chris_kohlhoff | 2009-04-16 22:31:27 +1000 (Thu, 16 Apr 2009) | 4 lines
  
  Specifically handle the case when an overlapped ReadFile call fails with
  ERROR_MORE_DATA. This enables a hack where a windows::stream_handle can be
  used with a message-oriented named pipe.
........
Properties modified: 
   branches/release/   (props changed)
Text files modified: 
   branches/release/boost/asio/detail/socket_option.hpp           |     6 +++---                                  
   branches/release/boost/asio/detail/win_iocp_handle_service.hpp |     4 ++--                                    
   2 files changed, 5 insertions(+), 5 deletions(-)
Modified: branches/release/boost/asio/detail/socket_option.hpp
==============================================================================
--- branches/release/boost/asio/detail/socket_option.hpp	(original)
+++ branches/release/boost/asio/detail/socket_option.hpp	2009-04-17 18:32:20 EDT (Fri, 17 Apr 2009)
@@ -223,7 +223,7 @@
   linger(bool e, int t)
   {
     enabled(e);
-    timeout(t);
+    timeout BOOST_PREVENT_MACRO_SUBSTITUTION(t);
   }
 
   // Set the value for whether linger is enabled.
@@ -239,7 +239,7 @@
   }
 
   // Set the value for the linger timeout.
-  void timeout(int value)
+  void timeout BOOST_PREVENT_MACRO_SUBSTITUTION(int value)
   {
 #if defined(WIN32)
     value_.l_linger = static_cast<u_short>(value);
@@ -249,7 +249,7 @@
   }
 
   // Get the value for the linger timeout.
-  int timeout() const
+  int timeout BOOST_PREVENT_MACRO_SUBSTITUTION() const
   {
     return static_cast<int>(value_.l_linger);
   }
Modified: branches/release/boost/asio/detail/win_iocp_handle_service.hpp
==============================================================================
--- branches/release/boost/asio/detail/win_iocp_handle_service.hpp	(original)
+++ branches/release/boost/asio/detail/win_iocp_handle_service.hpp	2009-04-17 18:32:20 EDT (Fri, 17 Apr 2009)
@@ -573,7 +573,7 @@
     if (!ok) 
     {
       DWORD last_error = ::GetLastError();
-      if (last_error != ERROR_IO_PENDING)
+      if (last_error != ERROR_IO_PENDING && last_error != ERROR_MORE_DATA)
       {
         if (last_error == ERROR_HANDLE_EOF)
         {
@@ -763,7 +763,7 @@
         static_cast<DWORD>(boost::asio::buffer_size(buffer)),
         &bytes_transferred, ptr.get());
     DWORD last_error = ::GetLastError();
-    if (!ok && last_error != ERROR_IO_PENDING)
+    if (!ok && last_error != ERROR_IO_PENDING && last_error != ERROR_MORE_DATA)
     {
       boost::asio::io_service::work work(this->get_io_service());
       ptr.reset();