Class FileLockNamedLock

All Implemented Interfaces:
AutoCloseable, NamedLock

public final class FileLockNamedLock extends NamedLockSupport
Named lock that uses FileLock. An instance of this class is about ONE LOCK (one file) and is possibly used by multiple threads. Each thread (if properly coded re boxing) will try to obtain either shared or exclusive lock. As file locks are JVM-scoped (so one JVM can obtain same file lock only once), the threads share file lock and synchronize according to it. Still, as file lock obtain operation does not block (or in other words, the method that does block cannot be controlled for how long it blocks), we are "simulating" thread blocking using Retry utility. This implementation performs coordination not only on thread (JVM-local) level, but also on process level, as long as other parties are using this same "advisory" locking mechanism.