diff --git a/src/main/kotlin/io/emeraldpay/dshackle/upstream/AbstractHead.kt b/src/main/kotlin/io/emeraldpay/dshackle/upstream/AbstractHead.kt index f93152c0..77318863 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/upstream/AbstractHead.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/upstream/AbstractHead.kt @@ -53,11 +53,12 @@ abstract class AbstractHead( val delay = System.currentTimeMillis() - lastHeadUpdated if (delay > awaitHeadTimeoutMs) { log.warn("No head updates for $delay ms @ ${this.javaClass} - restart") - try { - lock.tryLock() - start() - } finally { - lock.unlock() + if (lock.tryLock()) { + try { + start() + } finally { + lock.unlock() + } } } }, 300, 30, TimeUnit.SECONDS