<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to 34: PiggyBack</title><link href="https://sourceforge.net/p/beepcore-java/bugs/34/" rel="alternate"/><link href="https://sourceforge.net/p/beepcore-java/bugs/34/feed.atom" rel="self"/><id>https://sourceforge.net/p/beepcore-java/bugs/34/</id><updated>2004-09-07T20:08:30Z</updated><subtitle>Recent changes to 34: PiggyBack</subtitle><entry><title>PiggyBack</title><link href="https://sourceforge.net/p/beepcore-java/bugs/34/" rel="alternate"/><published>2004-09-07T20:08:30Z</published><updated>2004-09-07T20:08:30Z</updated><author><name>Dong Xin</name><uri>https://sourceforge.net/u/dxin/</uri></author><id>https://sourceforge.nete83d963f569e44cf29a56a2c7fe93e0b812fa9d6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I am not sure where it is my misusage or a bug in beepcore.&lt;/p&gt;
&lt;p&gt;Here is what we traced when piggyback is used.&lt;br /&gt;
Client:&lt;br /&gt;
StartChannelRequest with a piggybacked data&lt;/p&gt;
&lt;p&gt;Server:&lt;br /&gt;
1. ProcessStartChannelRequest&lt;br /&gt;
2. detect the piggybacked MSG and put in the recvMSGQueue&lt;br /&gt;
of a new channel (say channel 1)&lt;br /&gt;
3. Channel 1 is invoked to process the piggybacked MSG&lt;br /&gt;
4. In PiggybackMSG.sendRPY, the reply data is given to&lt;br /&gt;
channel 0&lt;br /&gt;
5. Channel 0 send the piggybacked reply to client,&lt;br /&gt;
remove msg from&lt;br /&gt;
the head of recvMSGQueue of channle 0, while leaviing a&lt;br /&gt;
msg at the head of recvMSGQueue of channel 1&lt;/p&gt;
&lt;p&gt;Next time, when client send another request, there are&lt;br /&gt;
two msgs in &lt;br /&gt;
the recvMSGQueue in channel 1, the channel 1 will not&lt;br /&gt;
process any&lt;br /&gt;
message at all, because the condition to process&lt;br /&gt;
message is &lt;br /&gt;
to check whether the size of recvMSGQueue is 1.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>