diff options
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/fhandler.cc | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 0c28fe31b..bd9c7f909 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 2009-06-16 Christopher Faylor <me+cygwin@cgf.cx> + * fhandler.cc (fhandler_base::read_overlapped): Use a better variable + name. + +2009-06-16 Christopher Faylor <me+cygwin@cgf.cx> + * fhandler.cc (fhandler_base::read_overlapped): Preserve len when looping due to received signal. diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 16ec8114d..b8aa0dd80 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -1772,16 +1772,16 @@ fhandler_base::wait_overlapped (bool inres, bool writing, DWORD *bytes, DWORD le void fhandler_base::read_overlapped (void *ptr, size_t& len) { - DWORD bytes_written; + DWORD bytes_read; while (1) { - bool res = ReadFile (get_handle (), ptr, len, &bytes_written, + bool res = ReadFile (get_handle (), ptr, len, &bytes_read, get_overlapped ()); - int wres = wait_overlapped (res, false, &bytes_written); + int wres = wait_overlapped (res, false, &bytes_read); if (wres || !_my_tls.call_signal_handler ()) break; } - len = (size_t) bytes_written; + len = (size_t) bytes_read; } int |