mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 18:23:06 +00:00
37 lines
660 B
Java
37 lines
660 B
Java
package com.volmit.iris.util;
|
|
|
|
import lombok.Data;
|
|
|
|
import java.util.concurrent.locks.ReentrantLock;
|
|
|
|
@Data
|
|
public class IrisLock {
|
|
private transient final ReentrantLock lock;
|
|
private transient final String name;
|
|
private transient boolean disabled = false;
|
|
|
|
public IrisLock(String name) {
|
|
this.name = name;
|
|
lock = new ReentrantLock(false);
|
|
}
|
|
|
|
public void lock() {
|
|
if (disabled) {
|
|
return;
|
|
}
|
|
|
|
lock.lock();
|
|
}
|
|
|
|
public void unlock() {
|
|
if (disabled) {
|
|
return;
|
|
}
|
|
try {
|
|
lock.unlock();
|
|
} catch (Throwable e) {
|
|
|
|
}
|
|
}
|
|
}
|