Package org.eclipse.net4j.util.concurrent

## Interface IRWOLockManager<OBJECT,​CONTEXT>

- All Superinterfaces:
    `IRWLockManager<OBJECT,​CONTEXT>`
  All Known Implementing Classes:
    `RWOLockManager`

      public interface IRWOLockManager<OBJECT,​CONTEXT>
      extends IRWLockManager<OBJECT,​CONTEXT>

  A `read/write lock manager` that supports `write option` locks.
  Since:
    3.2
  Author:
    Caspar De Groot

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.concurrent.IRWLockManager

      `IRWLockManager.LockType`

  - ### Field Summary

    - ### Fields inherited from interface org.eclipse.net4j.util.concurrent.IRWLockManager

      `NO_WAIT, WAIT`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.List<RWOLockManager.LockState<OBJECT,​CONTEXT>>` | `lock2​(IRWLockManager.LockType type, CONTEXT context, java.util.Collection<? extends OBJECT> objectsToLock, long timeout)` | Adds locks of the given type, owned by the given context on the given objects.
    `java.util.List<RWOLockManager.LockState<OBJECT,​CONTEXT>>` | `unlock2​(CONTEXT context)` | Removes all locks owned by the given context on any objects.
    `java.util.List<RWOLockManager.LockState<OBJECT,​CONTEXT>>` | `unlock2​(CONTEXT context, java.util.Collection<? extends OBJECT> objectsToUnlock)` | Removes all locks owned by the given context.
    `java.util.List<RWOLockManager.LockState<OBJECT,​CONTEXT>>` | `unlock2​(IRWLockManager.LockType type, CONTEXT context, java.util.Collection<? extends OBJECT> objectsToUnlock)` | Removes all locks of the given type, owned by the given context on the given objects.

    - ### Methods inherited from interface org.eclipse.net4j.util.concurrent.IRWLockManager

      `hasLock, hasLockByOthers, lock, lock, unlock, unlock`

- - ### Method Detail

    - #### lock2

          java.util.List<RWOLockManager.LockState<OBJECT,​CONTEXT>> lock2​(IRWLockManager.LockType type,
                                                                               CONTEXT context,
                                                                               java.util.Collection<? extends OBJECT> objectsToLock,
                                                                               long timeout)
                                                                        throws java.lang.InterruptedException

      Adds locks of the given type, owned by the given context on the given objects.
      Throws:
        `java.lang.InterruptedException`

    - #### unlock2

          java.util.List<RWOLockManager.LockState<OBJECT,​CONTEXT>> unlock2​(IRWLockManager.LockType type,
                                                                                 CONTEXT context,
                                                                                 java.util.Collection<? extends OBJECT> objectsToUnlock)

      Removes all locks of the given type, owned by the given context on the given objects.

    - #### unlock2

          java.util.List<RWOLockManager.LockState<OBJECT,​CONTEXT>> unlock2​(CONTEXT context)

      Removes all locks owned by the given context on any objects.

    - #### unlock2

          java.util.List<RWOLockManager.LockState<OBJECT,​CONTEXT>> unlock2​(CONTEXT context,
                                                                                 java.util.Collection<? extends OBJECT> objectsToUnlock)

      Removes all locks owned by the given context.