mirror of
https://github.com/go-micro/go-micro.git
synced 2024-12-24 10:07:04 +02:00
fix locking of socket pool
This commit is contained in:
parent
1da8a640da
commit
27e41c4ad5
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user