Package com.jogamp.common.util.locks
Class SingletonInstance
java.lang.Object
com.jogamp.common.util.locks.SingletonInstance
- All Implemented Interfaces:
Lock
-
Field Summary
FieldsFields inherited from interface com.jogamp.common.util.locks.Lock
DEFAULT_TIMEOUT, TIMEOUT, TRACE_LOCK -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic 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()final longprotected Stringprotected StringinfoPrefix(long currentMillis) booleanisLocked()Query if lockedvoidlock()Blocking until the lock is acquired by this Thread orLock.TIMEOUTis reached.final StringtoString()booleantryLock(long maxwait) Blocking until the lock is acquired by this Thread ormaxwaitin ms is reached.protected abstract booleanvoidunlock()Release the lock.protected abstract boolean
-
Field Details
-
DEBUG
protected static final boolean DEBUG- See Also:
-
-
Constructor Details
-
SingletonInstance
protected SingletonInstance(long poll_ms)
-
-
Method Details
-
createFileLock
-
createFileLock
-
createServerSocket
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
-
toString
-
lock
Description 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
Description 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
Description 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
-
infoPrefix
-