Package com.jogamp.common.util.locks
Class SingletonInstance
- java.lang.Object
-
- com.jogamp.common.util.locks.SingletonInstance
-
-
Field Summary
Fields Modifier and Type Field Description protected static booleanDEBUG-
Fields inherited from interface com.jogamp.common.util.locks.Lock
DEFAULT_TIMEOUT, TIMEOUT, TRACE_LOCK
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedSingletonInstance(long poll_ms)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static SingletonInstancecreateFileLock(long poll_ms, File lockFile)static SingletonInstancecreateFileLock(long poll_ms, String lockFileBasename)static SingletonInstancecreateServerSocket(long poll_ms, int portNumber)A user shall use ephemeral ports: IANA suggests 49152 to 65535 as "dynamic and/or private ports". Many GNU/Linux kernels use 32768 to 61000. FreeBSD >= 4.6 uses the IANA port range. FreeBSD < 4.6 and BSD use ports 1024 through 4999. Microsoft Windows operating systems through Server 2003 use the range 1025 to 5000 Windows Vista, Windows 7, and Server 2008 use the IANA range.abstract StringgetName()longgetPollPeriod()protected StringinfoPrefix()protected StringinfoPrefix(long currentMillis)booleanisLocked()Query if lockedvoidlock()Blocking until the lock is acquired by this Thread orLock.TIMEOUTis reached.StringtoString()booleantryLock(long maxwait)Blocking until the lock is acquired by this Thread ormaxwaitin ms is reached.protected abstract booleantryLockImpl()voidunlock()Release the lock.protected abstract booleanunlockImpl()
-
-
-
Field Detail
-
DEBUG
protected static final boolean DEBUG
- See Also:
- Constant Field Values
-
-
Method Detail
-
createFileLock
public static SingletonInstance createFileLock(long poll_ms, String lockFileBasename)
-
createFileLock
public static SingletonInstance createFileLock(long poll_ms, File lockFile)
-
createServerSocket
public static SingletonInstance createServerSocket(long poll_ms, int portNumber)
A user shall use ephemeral ports:- IANA suggests 49152 to 65535 as "dynamic and/or private ports".
- Many GNU/Linux kernels use 32768 to 61000.
- FreeBSD >= 4.6 uses the IANA port range.
- FreeBSD < 4.6 and BSD use ports 1024 through 4999.
- Microsoft Windows operating systems through Server 2003 use the range 1025 to 5000
- Windows Vista, Windows 7, and Server 2008 use the IANA range.
- Parameters:
pollPeriod-portNumber- to be used for this single instance server socket.
-
getPollPeriod
public final long getPollPeriod()
-
getName
public abstract String getName()
-
lock
public void lock() throws RuntimeExceptionDescription copied from interface:LockBlocking until the lock is acquired by this Thread orLock.TIMEOUTis reached.- Specified by:
lockin interfaceLock- Throws:
RuntimeException- in case ofLock.TIMEOUT
-
tryLock
public boolean tryLock(long maxwait) throws RuntimeExceptionDescription copied from interface:LockBlocking until the lock is acquired by this Thread ormaxwaitin ms is reached.- Specified by:
tryLockin interfaceLock- 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
-
tryLockImpl
protected abstract boolean tryLockImpl()
-
unlock
public void unlock() throws RuntimeExceptionDescription copied from interface:LockRelease the lock.- Specified by:
unlockin interfaceLock- Throws:
RuntimeException- in case the lock is not acquired by this thread.
-
unlockImpl
protected abstract boolean unlockImpl()
-
isLocked
public boolean isLocked()
Description copied from interface:LockQuery if locked
-
infoPrefix
protected String infoPrefix(long currentMillis)
-
infoPrefix
protected String infoPrefix()
-
-