Two concurrent 'deleteClientFromMap' calls for the same client may produce panic and deadlock. First goroutine acquires lock, removes element from the map, releases lock. Second goroutine acquires lock, and throws panic while trying to call 'close()' on empty struct. Lock is never released and it causes deadlock for other goroutines. Signed-off-by: Alex Vanin <a.vanin@yadro.com> |
||
---|---|---|
.. | ||
service | ||
client.go | ||
pool.go | ||
pool_signature.go | ||
pool_test.go | ||
statistic.go |