p2p/protocols, swarm/network: fix resource leak with p2p teardown

This commit is contained in:
Elad
2019-04-26 16:29:28 +09:00
committed by Anton Evangelatov
parent c1213bd00c
commit a1cd7e6e92
4 changed files with 28 additions and 19 deletions

View File

@@ -178,12 +178,7 @@ func newStreamerTester(registryOptions *RegistryOptions) (*p2ptest.ProtocolTeste
netStore.NewNetFetcherFunc = network.NewFetcherFactory(delivery.RequestFromPeers, true).New
intervalsStore := state.NewInmemoryStore()
streamer := NewRegistry(addr.ID(), delivery, netStore, intervalsStore, registryOptions, nil)
teardown := func() {
streamer.Close()
intervalsStore.Close()
netStore.Close()
removeDataDir()
}
prvkey, err := crypto.GenerateKey()
if err != nil {
removeDataDir()
@@ -191,7 +186,13 @@ func newStreamerTester(registryOptions *RegistryOptions) (*p2ptest.ProtocolTeste
}
protocolTester := p2ptest.NewProtocolTester(prvkey, 1, streamer.runProtocol)
teardown := func() {
protocolTester.Stop()
streamer.Close()
intervalsStore.Close()
netStore.Close()
removeDataDir()
}
err = waitForPeers(streamer, 10*time.Second, 1)
if err != nil {
teardown()