summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2002-10-10 03:51:52 +0000
committerSteve Huston <shuston@riverace.com>2002-10-10 03:51:52 +0000
commit8afac65aa1abb8dfb1c6659d4461cf397127d61d (patch)
tree37d4c817d12995893c720bd4562a4e4e0fdbafd4
parent0634994169a811912093e704d0388bb8bbb696e9 (diff)
downloadATCD-8afac65aa1abb8dfb1c6659d4461cf397127d61d.tar.gz
ChangeLogTag:Wed Oct 9 23:43:51 2002 Steve Huston <shuston@riverace.com>
-rw-r--r--ChangeLog9
-rw-r--r--ChangeLogs/ChangeLog-03a9
-rw-r--r--ace/WIN32_Asynch_IO.cpp20
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
{