| 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
LockLock.TIMEOUT is reached.lock in interface LockRuntimeException - in case of Lock.TIMEOUTpublic boolean tryLock(long maxwait)
throws RuntimeException
Lockmaxwait in ms is reached.tryLock in interface Lockmaxwait - 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 falseRuntimeExceptionprotected abstract boolean tryLockImpl()
public void unlock()
throws RuntimeException
Lockunlock in interface LockRuntimeException - in case the lock is not acquired by this thread.protected abstract boolean unlockImpl()
public boolean isLocked()
Lockprotected String infoPrefix(long currentMillis)
protected String infoPrefix()