Use of "Double-Checked Locking" in ThreadPoolFilter
---------------------------------------------------

         Key: DIRMINA-183
         URL: http://issues.apache.org/jira/browse/DIRMINA-183
     Project: Directory MINA
        Type: Bug
    Reporter: peter royal


In ThreadPoolFilter, the Double-Checked Locking pattern is used:

        SessionBuffer buf = ( SessionBuffer ) buffers.get( session );
        if( buf == null )
        {
            synchronized( buffers )
            {
                buf = ( SessionBuffer ) buffers.get( session );
                if( buf == null )
                {
                    buf = new SessionBuffer( session );
                    buffers.put( session, buf );
                }
            }
        }

.. this could lead to problems on multi-CPU systems 
(http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to