connamara/quickfixn — pull request #253 by huruixd (2014-02-10 17:56:19+00:00)
Title: A fix for deadlock when sending and receiving large amount of FIX messages simultaneously.

We should remove the lock in the Session.HasResponder. This was an overlocking which was causing deadlock when sending and receiving larget amount FIX messages simultaneously.

A detailed description of the issue can be found here:
http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/2012q2/000202.html

Removing the lock doesn't affect the current unit tests and acceptance tests.
This issue was hard to be reproduced through unit tests as it requires a TCP
connection between a server and a client. I have attched two additional projects to verify the correctness of the change.
Launch the FIXServer first and then FIXClient. Following the instructions to
issue 10,000 orders from the FIXClient, wihle sending the FIXServer will start
sending execution reports back.