Details

    • Type: Sub-task Sub-task
    • Status: Resolved Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.3.2
    • Fix Version/s: 1.3.3rc1
    • Component/s: JDO
    • Labels:
      None
    • Number of attachments :
      2

      Description

      The Container (FastIteratingContainer and MapContainer) could be protected properly by AbstractHashbelt.lock(). Because we can't access the Container directly, we just access the Container through AbstractHashbelt, so the AbstractHashbelt.lock() will protect the Container. So I think the synchronized/locking on the Container (FastIteratingContainer and MapContainer) is not necessary.

      But the AbstractHashbelt.lock() can't protect WeakReferenceContainer properly, because WeakReferenceContainer.get need to get the writeLock, this has different meaning with AbstractHashbelt.lock(). So synchronized/locking on WeakReferenceContainer is necessary.

      1. patch-C3170-20110730.txt
        5 kB
        Wensheng Dou
      2. patch-C3170-20110803.txt
        5 kB
        Wensheng Dou

        Activity

        Hide
        Wensheng Dou added a comment -

        Eliminate some extra synchronization for FastIteratingContainer and MapContainer.

        Show
        Wensheng Dou added a comment - Eliminate some extra synchronization for FastIteratingContainer and MapContainer.
        Hide
        Wensheng Dou added a comment -

        Create a new patch after some other updates.

        Show
        Wensheng Dou added a comment - Create a new patch after some other updates.
        Hide
        Ralf Joachim added a comment -

        Committed almost as is.

        Show
        Ralf Joachim added a comment - Committed almost as is.

          People

          • Assignee:
            Wensheng Dou
            Reporter:
            Wensheng Dou
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: