rafthttp: make "ActiveSince" non-blocking on write lock

"ActiveSince" is read-only, and should be able to call
concurrently, as long as there is no routine holding
write lock (send, send snapshot).

e.g. "ActiveSince" is used around etcd server
"processInternalRaftRequestOnce", should be non-blocking

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
This commit is contained in:
Gyuho Lee 2018-02-26 16:47:29 -08:00
parent d6b46ac969
commit fbe6767570

View File

@ -338,8 +338,8 @@ func (t *Transport) UpdatePeer(id types.ID, us []string) {
}
func (t *Transport) ActiveSince(id types.ID) time.Time {
t.mu.Lock()
defer t.mu.Unlock()
t.mu.RLock()
defer t.mu.RUnlock()
if p, ok := t.peers[id]; ok {
return p.activeSince()
}