summaryrefslogtreecommitdiff
path: root/ace/FIFO_Send_Msg.i
diff options
context:
space:
mode:
Diffstat (limited to 'ace/FIFO_Send_Msg.i')
-rw-r--r--ace/FIFO_Send_Msg.i25
1 files changed, 16 insertions, 9 deletions
diff --git a/ace/FIFO_Send_Msg.i b/ace/FIFO_Send_Msg.i
index e81484983c2..07b7de5e195 100644
--- a/ace/FIFO_Send_Msg.i
+++ b/ace/FIFO_Send_Msg.i
@@ -19,10 +19,13 @@ ACE_FIFO_Send_Msg::send (const ACE_Str_Buf *data,
int flags)
{
ACE_TRACE ("ACE_FIFO_Send_Msg::send");
- return ACE_OS::putmsg (this->get_handle (),
- (strbuf *) cntl,
- (strbuf *) data,
- flags);
+ if (ACE_OS::putmsg (this->get_handle (),
+ (strbuf *) cntl,
+ (strbuf *) data,
+ flags) == -1)
+ return-1;
+ else
+ return (cntl == 0 ? 0 : cntl->len) + (data == 0 ? 0 : data->len);
}
ASYS_INLINE ssize_t
@@ -32,10 +35,14 @@ ACE_FIFO_Send_Msg::send (int band,
int flags)
{
ACE_TRACE ("ACE_FIFO_Send_Msg::send");
- return ACE_OS::putpmsg (this->get_handle (),
- (strbuf *) cntl,
- (strbuf *) data,
- band,
- flags);
+
+ if (ACE_OS::putpmsg (this->get_handle (),
+ (strbuf *) cntl,
+ (strbuf *) data,
+ band,
+ flags) == -1)
+ return -1;
+ else
+ return (cntl == 0 ? 0 : cntl->len) + (data == 0 ? 0 : data->len);
}
#endif /* ACE_HAS_STREAM_PIPES */