I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit f3affff5 authored by zab2's avatar zab2
Browse files

Atomic

parent 5941a52a
No related branches found
No related tags found
No related merge requests found
package net.i2p.router.tunnel.pool; package net.i2p.router.tunnel.pool;
import java.util.concurrent.atomic.AtomicBoolean;
import net.i2p.router.JobImpl; import net.i2p.router.JobImpl;
import net.i2p.router.Router; import net.i2p.router.Router;
import net.i2p.router.RouterContext; import net.i2p.router.RouterContext;
...@@ -13,7 +15,7 @@ import net.i2p.router.tunnel.TunnelCreatorConfig; ...@@ -13,7 +15,7 @@ import net.i2p.router.tunnel.TunnelCreatorConfig;
class ExpireJob extends JobImpl { class ExpireJob extends JobImpl {
private final TunnelPool _pool; private final TunnelPool _pool;
private final TunnelCreatorConfig _cfg; private final TunnelCreatorConfig _cfg;
private boolean _leaseUpdated; private final AtomicBoolean _leaseUpdated = new AtomicBoolean(false);
private final long _dropAfter; private final long _dropAfter;
private static final long OB_EARLY_EXPIRE = 30*1000; private static final long OB_EARLY_EXPIRE = 30*1000;
...@@ -48,10 +50,9 @@ class ExpireJob extends JobImpl { ...@@ -48,10 +50,9 @@ class ExpireJob extends JobImpl {
} }
public void runJob() { public void runJob() {
if (!_leaseUpdated) { if (_leaseUpdated.compareAndSet(false,true)) {
// First run // First run
_pool.removeTunnel(_cfg); _pool.removeTunnel(_cfg);
_leaseUpdated = true;
// noop for outbound // noop for outbound
_pool.refreshLeaseSet(); _pool.refreshLeaseSet();
long timeToDrop = _dropAfter - getContext().clock().now(); long timeToDrop = _dropAfter - getContext().clock().now();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment