Modifier and Type | Field and Description |
---|---|
protected static boolean |
DEBUG |
DEFAULT_TIMEOUT, TIMEOUT, TRACE_LOCK
Modifier | Constructor and Description |
---|---|
protected |
SingletonInstance(long poll_ms) |
Modifier and Type | Method and Description |
---|---|
static SingletonInstance |
createFileLock(long poll_ms,
File lockFile) |
static SingletonInstance |
createFileLock(long poll_ms,
String lockFileBasename) |
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.
|
abstract String |
getName() |
long |
getPollPeriod() |
protected String |
infoPrefix() |
protected String |
infoPrefix(long currentMillis) |
boolean |
isLocked()
Query if locked
|
void |
lock()
Blocking until the lock is acquired by this Thread or
Lock.TIMEOUT is reached. |
String |
toString() |
boolean |
tryLock(long maxwait)
Blocking until the lock is acquired by this Thread or
maxwait in ms is reached. |
protected abstract boolean |
tryLockImpl() |
void |
unlock()
Release the lock.
|
protected abstract boolean |
unlockImpl() |
protected static final boolean DEBUG
public static SingletonInstance createFileLock(long poll_ms, String lockFileBasename)
public static SingletonInstance createFileLock(long poll_ms, File lockFile)
public static SingletonInstance createServerSocket(long poll_ms, int portNumber)
pollPeriod
- portNumber
- to be used for this single instance server socket.public final long getPollPeriod()
public abstract String getName()
public void lock() throws RuntimeException
Lock
Lock.TIMEOUT
is reached.lock
in interface Lock
RuntimeException
- in case of Lock.TIMEOUT
public boolean tryLock(long maxwait) throws RuntimeException
Lock
maxwait
in ms is reached.tryLock
in interface Lock
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.maxwait
, otherwise falseRuntimeException
protected abstract boolean tryLockImpl()
public void unlock() throws RuntimeException
Lock
unlock
in interface Lock
RuntimeException
- in case the lock is not acquired by this thread.protected abstract boolean unlockImpl()
public boolean isLocked()
Lock
protected String infoPrefix(long currentMillis)
protected String infoPrefix()