com.jogamp.common.util.locks
Interface Lock

All Known Subinterfaces:
LockExt
All Known Implementing Classes:
RecursiveLock, SingletonInstance

public interface Lock

Specifying a thread blocking lock implementation


Field Summary
static boolean DEBUG
          Enable via the property jogamp.debug.Lock
static long DEFAULT_TIMEOUT
          Defines the default TIMEOUT value
static long TIMEOUT
          Defines the TIMEOUT for lock() in ms, and defaults to DEFAULT_TIMEOUT.
It can be overriden via the system property jogamp.common.utils.locks.Lock.timeout.
 
Method Summary
 boolean isLocked()
           
 void lock()
          Blocking until the lock is acquired by this Thread or TIMEOUT is reached.
 boolean tryLock(long maxwait)
          Blocking until the lock is acquired by this Thread or maxwait in ms is reached.
 void unlock()
          Unblocking.
 

Field Detail

DEBUG

static final boolean DEBUG
Enable via the property jogamp.debug.Lock


DEFAULT_TIMEOUT

static final long DEFAULT_TIMEOUT
Defines the default TIMEOUT value

See Also:
Constant Field Values

TIMEOUT

static final long TIMEOUT
Defines the TIMEOUT for lock() in ms, and defaults to DEFAULT_TIMEOUT.
It can be overriden via the system property jogamp.common.utils.locks.Lock.timeout.

Method Detail

lock

void lock()
          throws RuntimeException
Blocking until the lock is acquired by this Thread or TIMEOUT is reached.

Throws:
RuntimeException - in case of TIMEOUT

tryLock

boolean tryLock(long maxwait)
                throws RuntimeException
Blocking until the lock is acquired by this Thread or maxwait in ms is reached.

Parameters:
maxwait - Maximum time in ms to wait to acquire the lock. If this value is zero, the call returns immediately either without being able to acquire the lock, or with acquiring the lock directly while ignoring any scheduling order.
Returns:
true if the lock has been acquired within maxwait, otherwise false
Throws:
RuntimeException - in case of TIMEOUT

unlock

void unlock()
            throws RuntimeException
Unblocking.

Throws:
RuntimeException - in case the lock is not acquired by this thread.

isLocked

boolean isLocked()