Overview | Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## de.grogra.util
Interface LockProtectedRunnable

    public interface LockProtectedRunnable

A `LockProtectedRunnable` represents a task which is to be executed within the context of a `Lock` on a [@link de.grogra.util.Lockable} resource. The execution of the task is induced by one of the `execute` methods in `Lockable`.

Author:
  Ole Kniemeyer

Method Summary
`void` | `run(boolean sync, Lock lock)` The invocation of this method is induced by one of the `execute` methods in `Lockable`.

Method Detail

### run

    void run(boolean sync,
             Lock lock)

  The invocation of this method is induced by one of the `execute` methods in `Lockable`. The thread which invokes this method possesses a `lock` as requested by the invocation of `execute`. If `sync` is `true`, the invocation is synchronous, meaning that it happens directly within the invocation of the `execute` method. Otherwise, the invocation is asynchronous, meaning that it happens later in a thread which may differ from the original thread.

  Normally, the lock is released after execution of `run` has finished. However, when the method `Lock.retain()` has been invoked within `run`, the lock is retained and remains active in order to be passed to one of the `execute` methods of `Lockable`.

  Parameters:
    `sync` - synchronous invocation?
    `lock` - the lock which is currently acquired

Overview | Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD