From 023d1a6e5dacbf2af8d6643c650b92c64d571a0f Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Wed, 12 Jan 2022 12:05:07 -0800 Subject: [PATCH] Avoid deadlock on double close --- tor/torProvider.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/tor/torProvider.go b/tor/torProvider.go index d79f268..2fe156c 100644 --- a/tor/torProvider.go +++ b/tor/torProvider.go @@ -297,13 +297,15 @@ func (tp *torProvider) Close() { delete(tp.childListeners, addr) } - // Break out of any background checks and close - // the underlying tor connection - tp.isClosed = true - tp.breakChan <- true - if tp.t != nil { - tp.t.Close() - tp.t = nil + if !tp.isClosed { + // Break out of any background checks and close + // the underlying tor connection + tp.isClosed = true + tp.breakChan <- true + if tp.t != nil { + tp.t.Close() + tp.t = nil + } } }