summaryrefslogtreecommitdiff
path: root/ace/Asynch_IO.cpp
diff options
context:
space:
mode:
authorjxh <jxh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-10-12 18:23:10 +0000
committerjxh <jxh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-10-12 18:23:10 +0000
commit17b31a8b05f922c0eb0f2bdd4ad7dee8f111c21a (patch)
treeea0740a613b8b973e03ef96cb710dab127a7ae75 /ace/Asynch_IO.cpp
parent61d24cb233702017e066784ca745910912020395 (diff)
downloadATCD-17b31a8b05f922c0eb0f2bdd4ad7dee8f111c21a.tar.gz
* Asynch_IO.cpp: Minor changes to deal with FMR error.
* Message_Block.{cpp,i,h}: Changed rd_ptr_ and wr_ptr_ to be byte offsets from base (). This allows one to resize a duplicate without trashing other Message_Blocks that may be referring to the same data block. * Proactor.cpp: Made the message block 64 bytes bigger to make purify happier.
Diffstat (limited to 'ace/Asynch_IO.cpp')
-rw-r--r--ace/Asynch_IO.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/ace/Asynch_IO.cpp b/ace/Asynch_IO.cpp
index 5bc572fa8e0..4d4c98802d4 100644
--- a/ace/Asynch_IO.cpp
+++ b/ace/Asynch_IO.cpp
@@ -219,6 +219,7 @@ ACE_Asynch_Operation::register_aio_with_proactor (aiocb *aiocb_ptr)
// Store the pointers.
this->proactor_->aiocb_list_[ai] = aiocb_ptr;
this->proactor_->aiocb_list_cur_size_ ++;
+
return 0;
}
#endif /* ACE_HAS_AIO_CALLS */
@@ -1336,7 +1337,7 @@ ACE_Asynch_Transmit_Handler::ACE_Asynch_Transmit_Handler (ACE_Asynch_Transmit_Fi
ACE_Asynch_Transmit_Handler::~ACE_Asynch_Transmit_Handler (void)
{
delete result_;
- delete mb_;
+ mb_->release ();
}
// Do the transmission.
@@ -1375,11 +1376,16 @@ ACE_Asynch_Transmit_Handler::transmit (void)
while (!error && !this->transmit_file_done_)
error = this->proactor_->handle_events ();
- if (!error && this->transmit_file_done_)
- // No error, transmission done.
- return 0;
+ if (!error)
+ {
+ // No error, transmission done.
+ delete this;
+ return 0;
+ }
else
- return -1;
+ {
+ return -1;
+ }
}
void
@@ -1456,7 +1462,6 @@ ACE_Asynch_Transmit_Handler::handle_write_stream (const ACE_Asynch_Write_Stream:
ACE_SEH_FINALLY
{
transmit_file_done_ = 1;
- delete this;
}
break;