forked from TrueCloudLab/frostfs-sdk-go
[#171] pool: Close only dialed connections
To avoid panics during close operation, close only dialed connections. Signed-off-by: Alex Vanin <a.vanin@yadro.com>
This commit is contained in:
parent
ddbfb758c9
commit
8a04638749
1 changed files with 5 additions and 1 deletions
|
@ -86,6 +86,8 @@ type client interface {
|
||||||
type clientStatus interface {
|
type clientStatus interface {
|
||||||
// isHealthy checks if the connection can handle requests.
|
// isHealthy checks if the connection can handle requests.
|
||||||
isHealthy() bool
|
isHealthy() bool
|
||||||
|
// isDialed checks if the connection was created.
|
||||||
|
isDialed() bool
|
||||||
// setUnhealthy marks client as unhealthy.
|
// setUnhealthy marks client as unhealthy.
|
||||||
setUnhealthy()
|
setUnhealthy()
|
||||||
// address return address of endpoint.
|
// address return address of endpoint.
|
||||||
|
@ -2809,7 +2811,9 @@ func (p *Pool) Close() {
|
||||||
// close all clients
|
// close all clients
|
||||||
for _, pools := range p.innerPools {
|
for _, pools := range p.innerPools {
|
||||||
for _, cli := range pools.clients {
|
for _, cli := range pools.clients {
|
||||||
_ = cli.close()
|
if cli.isDialed() {
|
||||||
|
_ = cli.close()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue