Prevent Peer Queue Close from being called more than Once on Shutdown
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
This commit is contained in:
parent
c8a6a1b079
commit
321b08bfd3
|
@ -48,8 +48,10 @@ func (iq *queue) Len() int {
|
|||
// Shutdown closes our eventChannel
|
||||
func (iq *queue) Shutdown() {
|
||||
iq.lock.Lock()
|
||||
iq.closed = true
|
||||
iq.infChan.Close()
|
||||
if !iq.closed {
|
||||
iq.closed = true
|
||||
iq.infChan.Close()
|
||||
}
|
||||
iq.lock.Unlock()
|
||||
|
||||
}
|
||||
|
|
|
@ -1124,10 +1124,13 @@ func (cp *cwtchPeer) StartServerConnections() {
|
|||
func (cp *cwtchPeer) Shutdown() {
|
||||
cp.mutex.Lock()
|
||||
defer cp.mutex.Unlock()
|
||||
cp.shutdown = true
|
||||
cp.queue.Shutdown()
|
||||
if cp.storage != nil {
|
||||
cp.storage.Close(true)
|
||||
// don't allow this to be shutdown twice...
|
||||
if !cp.shutdown {
|
||||
cp.shutdown = true
|
||||
cp.queue.Shutdown()
|
||||
if cp.storage != nil {
|
||||
cp.storage.Close(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -157,6 +157,9 @@ func TestFileSharing(t *testing.T) {
|
|||
// run the same download test again...to check that we can actually download the file
|
||||
testBobDownloadFile(t, bob, filesharingFunctionality, queueOracle)
|
||||
|
||||
// test that we can delete bob...
|
||||
app.DeletePeer(bob.GetOnion(), "asdfasdf")
|
||||
|
||||
queueOracle.Shutdown()
|
||||
app.Shutdown()
|
||||
acn.Close()
|
||||
|
|
Loading…
Reference in New Issue