diff options
author | Steve Huston <shuston@riverace.com> | 2002-10-10 03:51:52 +0000 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 2002-10-10 03:51:52 +0000 |
commit | 8afac65aa1abb8dfb1c6659d4461cf397127d61d (patch) | |
tree | 37d4c817d12995893c720bd4562a4e4e0fdbafd4 | |
parent | 0634994169a811912093e704d0388bb8bbb696e9 (diff) | |
download | ATCD-8afac65aa1abb8dfb1c6659d4461cf397127d61d.tar.gz |
ChangeLogTag:Wed Oct 9 23:43:51 2002 Steve Huston <shuston@riverace.com>
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-03a | 9 | ||||
-rw-r--r-- | ace/WIN32_Asynch_IO.cpp | 20 |
3 files changed, 30 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog index a01f7562f9e..79fe50562e7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Wed Oct 9 23:43:51 2002 Steve Huston <shuston@riverace.com> + + * ace/WIN32_Asynch_IO.cpp (ACE_Asynch_Read_Stream::readv, + ACE_Asynch_Write_Stream::writev, ACE_Asynch_Read_Dgram::recv, + ACE_Asynch_Write_Dgram::send): Don't double-increment iovcnt + while checking for the need for multiple iov per message block. + Fixes bug introduced in: + Fri Oct 4 20:22:41 2002 Steve Huston <shuston@riverace.com> + Wed Oct 9 23:08:19 2002 Steve Huston <shuston@riverace.com> * include/makeinclude/rules.lib.GNU: For the funky AIX shr.o/lib*.a diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a index a01f7562f9e..79fe50562e7 100644 --- a/ChangeLogs/ChangeLog-03a +++ b/ChangeLogs/ChangeLog-03a @@ -1,3 +1,12 @@ +Wed Oct 9 23:43:51 2002 Steve Huston <shuston@riverace.com> + + * ace/WIN32_Asynch_IO.cpp (ACE_Asynch_Read_Stream::readv, + ACE_Asynch_Write_Stream::writev, ACE_Asynch_Read_Dgram::recv, + ACE_Asynch_Write_Dgram::send): Don't double-increment iovcnt + while checking for the need for multiple iov per message block. + Fixes bug introduced in: + Fri Oct 4 20:22:41 2002 Steve Huston <shuston@riverace.com> + Wed Oct 9 23:08:19 2002 Steve Huston <shuston@riverace.com> * include/makeinclude/rules.lib.GNU: For the funky AIX shr.o/lib*.a diff --git a/ace/WIN32_Asynch_IO.cpp b/ace/WIN32_Asynch_IO.cpp index 0bf7f43f1f7..e87f7b6b5d4 100644 --- a/ace/WIN32_Asynch_IO.cpp +++ b/ace/WIN32_Asynch_IO.cpp @@ -450,8 +450,9 @@ ACE_WIN32_Asynch_Read_Stream::readv (ACE_Message_Block &message_block, msg_space -= this_chunk_length; wr_ptr_offset += this_chunk_length; - // Increment iovec counter. - iovcnt++; + // Increment iovec counter if there's more to do. + if (msg_space > 0) + iovcnt++; } if (msg_space > 0) // Ran out of iovecs before msg_space exhausted { @@ -864,8 +865,9 @@ ACE_WIN32_Asynch_Write_Stream::writev (ACE_Message_Block &message_block, msg_len -= this_chunk_length; rd_ptr_offset += this_chunk_length; - // Increment iovec counter. - iovcnt++; + // Increment iovec counter if there's more to do. + if (msg_len > 0) + iovcnt++; } if (msg_len > 0) // Ran out of iovecs before msg_space exhausted { @@ -3294,8 +3296,9 @@ ACE_WIN32_Asynch_Read_Dgram::recv (ACE_Message_Block *message_block, msg_space -= this_chunk_length; wr_ptr_offset += this_chunk_length; - // Increment iovec counter. - iovcnt++; + // Increment iovec counter if there's more to do. + if (msg_space > 0) + iovcnt++; } if (msg_space > 0) // Ran out of iovecs before msg_space exhausted { @@ -3611,8 +3614,9 @@ ACE_WIN32_Asynch_Write_Dgram::send (ACE_Message_Block *message_block, msg_len -= this_chunk_length; rd_ptr_offset += this_chunk_length; - // Increment iovec counter. - iovcnt++; + // Increment iovec counter if there's more to do. + if (msg_len > 0) + iovcnt++; } if (msg_len > 0) // Ran out of iovecs before msg_space exhausted { |