package org.smartly.commons.mutex;
/**
*
*/
public class Mutex {
private final long _timeout;
private long _lastAccessTime;
public Mutex(final long timeout) {
_timeout = timeout;
_lastAccessTime = System.currentTimeMillis();
}
@Override
public String toString() {
final StringBuilder result = new StringBuilder();
result.append("id: ").append(this.hashCode());
result.append(", ");
result.append("timeout: ").append(_timeout);
result.append(", ");
result.append("last_access: ").append(_lastAccessTime);
return result.toString();
}
Mutex wakeUp() {
_lastAccessTime = System.currentTimeMillis();
return this;
}
boolean isExpired() {
final long now = System.currentTimeMillis();
return (now - _lastAccessTime) > _timeout;
}
}