[QFJ-179] Improve session thread synchronization Created: 19/May/07  Updated: 04/Jul/07  Resolved: 19/May/07

Status: Closed
Project: QuickFIX/J
Component/s: None
Affects Version/s: None
Fix Version/s: 1.2.0

Type: Improvement Priority: Default
Reporter: Steve Bate Assignee: Steve Bate
Resolution: Fixed Votes: 0
Labels: None


 Description   

The current approach is safe, but too prone to deadlocks.



 Comments   
Comment by Steve Bate [ 19/May/07 ]

I've redesigned the thread synchronization in the session. The session state is now fully synchronized using the session intrinsic lock. I've added tests to ensure that no locks are held during quickfix.Application callbacks. I also do not hold a lock when invoking MINA for output operations. This should eliminate many potential sources of deadlock between MINA, the quickfix.Session, and application threads.

I've also made the dictionary in the session final. This creates a minor functional incompatibility with QF C++. If someone has a use case for modifying the Session's data dictionary after the session is created then I'm open to suggestions.

Generated at Sun May 05 12:41:16 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.