Merge pull request #1661 from micro/bugfix/sock_pool_threads

fix locking of socket pool
This commit is contained in:
Dominic Wong 2020-05-28 08:31:47 +01:00 committed by GitHub
commit 3f354f3c30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,12 +19,18 @@ func (p *Pool) Get(id string) (*Socket, bool) {
}
p.RUnlock()
// create new socket
socket = New(id)
// save socket
p.Lock()
defer p.Unlock()
// double checked locking
socket, ok = p.pool[id]
if ok {
return socket, ok
}
// create new socket
socket = New(id)
p.pool[id] = socket
p.Unlock()
// return socket
return socket, false
}