org.apache.lucene.store

## Class Lock.With

- java.lang.Object
- - org.apache.lucene.store.Lock.With

- Enclosing class:
    Lock

      public abstract static class Lock.With
      extends Object

  Utility class for executing code with exclusive access.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Lock.With(Lock lock, long lockWaitTimeout)` Constructs an executor that will grab the named lock.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract Object` | `doBody()` Code to execute with exclusive access.
    `Object` | `run()` Calls `doBody()` while lock is obtained.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Lock.With

          public Lock.With(Lock lock,
                   long lockWaitTimeout)

      Constructs an executor that will grab the named lock.

  - ### Method Detail

    - #### doBody

          protected abstract Object doBody()
                                    throws IOException

      Code to execute with exclusive access.
      Throws:
        `IOException`

    - #### run

          public Object run()
                     throws IOException

      Calls `doBody()` while lock is obtained. Blocks if lock cannot be obtained immediately. Retries to obtain lock once per second until it is obtained, or until it has tried ten times. Lock is released when `doBody()` exits.
      Throws:
        `LockObtainFailedException` - if lock could not be obtained
        `IOException` - if `Lock.obtain()` throws IOException

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.