Discussion:
[omniORB] Data transfer through callbacks
Mahanta, Dhruba
2013-03-08 10:24:11 UTC
Permalink
Hi All,

I have a call back registered with a server which looks like

Interface callBack_
{
oneway void PushData(in DataStruct data);
}

In the server I have the below sequence of calls

callback_->PushData(data_1_GB);
callback_->PushData(data_1_KB);

Is there a chance that the 1KB data reaches the client first?
If yes, is there a way to avoid it?

Thanks
Dhruba

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20130308/85fc7556/attachment.html>
Thomas Lockhart
2013-03-08 15:38:37 UTC
Permalink
Post by Mahanta, Dhruba
Hi All,
I have a call back registered with a server which looks like
Interface callBack_
{
oneway void PushData(in DataStruct data);
}
In the server I have the below sequence of calls
callback_->PushData(data_1_GB);
callback_->PushData(data_1_KB);
Is there a chance that the 1KB data reaches the client first?
If yes, is there a way to avoid it?
Not sure about the ordering with the oneway; from what I understand you
would lose your synchronization at the point that the packet gets
delivered but it may not be fully processed before the call returns in
your server. I could imagine that the first packet could be delivered
but not fully processed, that task could be time-sliced out by the
scheduler, then the second packet could arrive and be handled by a
different ORB thread.

You could run the ORB with a single-threaded model, but why not take out
the oneway in the interface and not have to worry about it?

hth

- Tom

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20130308/1b932dd5/attachment.html>
Loading...