You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by "Jim Hurley (JIRA)" <ji...@apache.org> on 2007/07/27 23:40:53 UTC
[jira] Commented: (RIVER-140) JoinManager synchronization strategy
should be reviewed, documented, and fixed where appropriate
[ https://issues.apache.org/jira/browse/RIVER-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12516104 ]
Jim Hurley commented on RIVER-140:
----------------------------------
Suggested Fix
Just after the class declaration of the JoinManager, is an "Implementation Note". This might be a candidate location for a description of theJoinManager's synchronization strategy.
> JoinManager synchronization strategy should be reviewed, documented, and fixed where appropriate
> ------------------------------------------------------------------------------------------------
>
> Key: RIVER-140
> URL: https://issues.apache.org/jira/browse/RIVER-140
> Project: River
> Issue Type: Improvement
> Components: net_jini_lookup
> Affects Versions: jtsk_2.1
> Reporter: Jim Hurley
> Priority: Minor
>
> Bugtraq ID [6219134|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6219134]
> To help avoid possible race conditions or even deadlock, the synchronization
> strategy employed by the JoinManager should be reviewed and documented.
> Having some idea of how the threads and tasks interact, and how (and
> why) access to shared data is controlled, should help with future
> maintenance of JoinManager.
> Synchronization-related bugs discovered while addressing this bug should
> be filed and addressed separately.
> See the comments section for a list of the objects on which the JoinManager
> currently synchronizes.
> Comments
> All objects on which JoinManager synchronizes:
> Object Scope of Object
> ------------------ -----------------------------------------------------
> ProxyReg.taskList each proxyReg stored in joinSet has its own taskList
> joinSet JoinManager
> JoinManager (this) JoinManager
> taskMgr JoinManager and taskMgr (and wakeupMgr?)
> wakeupMgr JoinManager and wakeupMgr
> ProxyReg.this each proxyReg stored in joinSet has its own taskList
> ProxyReg.fail() syncs on 'this'. Not sure if this is right. Should file a
> bug to investigate it.
> Also, may be able to simplify things by syncing on joinSet in the places
> where JoinManager itself is sync'd on (which is done only when trying to
> determine if the JoinManager has been terminated).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.