[
https://issues.apache.org/jira/browse/CAY-1653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrus Adamchik closed CAY-1653.
--------------------------------
Resolution: Fixed
> Improving DefaultEventManager concurrency - non-bocking DispatchQueue
> ---------------------------------------------------------------------
>
> Key: CAY-1653
> URL: https://issues.apache.org/jira/browse/CAY-1653
> Project: Cayenne
> Issue Type: Improvement
> Affects Versions: 3.1M3
> Reporter: Andrus Adamchik
> Assignee: Andrus Adamchik
> Fix For: 3.1M4
>
>
> DefaultEventManager and related non-public classes have a bunch of
> synchronized methods that create problems when lots of contexts exist in the
> system. This task is about streamlining one important piece of this puzzle -
> DispatchQueue. It is a reason (not the only one unfortunately) of deadlocks
> described under CAY-720, CAY-957 and CAY-1652. Also getting rid of it should
> in theory greatly improve performance (again - in a system with lots of
> committing contexts).
> So switching it to concurrent collections. Specifically 'dispatchEvent'
> method (add/remove listener methods still require some less invasive
> synchronization on WeakHashMap. We may replace this one with something like
> com.google.common.collect.MapMaker some time later... not essential for now).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira