forked from TrueCloudLab/frostfs-sdk-java
31 lines
746 B
Java
31 lines
746 B
Java
package info.frostfs.sdk.pool;
|
|
|
|
import lombok.AccessLevel;
|
|
import lombok.Getter;
|
|
import lombok.Setter;
|
|
|
|
import java.util.concurrent.locks.ReentrantLock;
|
|
|
|
@Setter
|
|
@Getter
|
|
public class MethodStatus {
|
|
@Getter(AccessLevel.NONE)
|
|
private final ReentrantLock lock = new ReentrantLock();
|
|
private final String name;
|
|
private StatusSnapshot snapshot;
|
|
|
|
public MethodStatus(String name) {
|
|
this.name = name;
|
|
this.snapshot = new StatusSnapshot();
|
|
}
|
|
|
|
void incRequests(long elapsed) {
|
|
lock.lock();
|
|
try {
|
|
snapshot.setAllTime(snapshot.getAllTime() + elapsed);
|
|
snapshot.setAllRequests(snapshot.getAllRequests() + 1);
|
|
} finally {
|
|
lock.unlock();
|
|
}
|
|
}
|
|
}
|