Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.22
-
None
Description
Where a session has two concurrent fetch() (or indeed get()) operations in progress, one of them may be delayed up to the timeout even if there is in fact a message much earlier than that.
This is due to the design whereby the threads pop off the next message from a session queue, and put it into a received buffer if its not one they are interested in. The wrong thread can get the message, and the other thread remains waiting for another one before re-checking the received buffer (which now has a message that matches its interest).