From b67bbd7065946ccc7557b9cd8d1d8f06878d3783 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Tue, 21 Apr 2015 14:33:59 +0000 Subject: [PATCH] improved locking --- .../src/net/i2p/router/time/RouterTimestamper.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/router/java/src/net/i2p/router/time/RouterTimestamper.java b/router/java/src/net/i2p/router/time/RouterTimestamper.java index 3d718d7c4b..4d8892442d 100644 --- a/router/java/src/net/i2p/router/time/RouterTimestamper.java +++ b/router/java/src/net/i2p/router/time/RouterTimestamper.java @@ -30,7 +30,7 @@ public class RouterTimestamper extends Timestamper { private int _consecutiveFails; private volatile boolean _disabled; private final boolean _daemon; - private boolean _initialized; + private volatile boolean _initialized; private boolean _wellSynced; private volatile boolean _isRunning; private Thread _timestamperThread; @@ -199,10 +199,13 @@ public class RouterTimestamper extends Timestamper { } } - boolean wasInitialized = _initialized; - if (!wasInitialized) - _initialized = true; - synchronized (this) { notifyAll(); } + boolean wasInitialized; + synchronized (this) { + wasInitialized = _initialized; + if (!wasInitialized) + _initialized = true; + notifyAll(); + } if (!wasInitialized) { // let the log manager get initialized try { Thread.sleep(10*1000); } catch (InterruptedException ie) {} -- GitLab