33 lines
737 B
Java
33 lines
737 B
Java
package org.warp.commonutils.concurrency.executor;
|
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
public final class PermitReleasingRunnableDecorator extends RunnableDecorator {
|
|
|
|
@NotNull
|
|
private final QueueSizeUpdater queueSizeUpdater;
|
|
PermitReleasingRunnableDecorator(@NotNull final Runnable task,
|
|
@NotNull final QueueSizeUpdater queueSizeUpdater) {
|
|
super(task);
|
|
this.queueSizeUpdater = queueSizeUpdater;
|
|
}
|
|
|
|
@Override
|
|
public void run() {
|
|
try {
|
|
queueSizeUpdater.update(true);
|
|
} finally {
|
|
try {
|
|
super.run();
|
|
} finally {
|
|
queueSizeUpdater.update(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public final String toString() {
|
|
return String.format("%s[delegate='%s']", getClass().getSimpleName(), super.toString());
|
|
}
|
|
}
|