Skip to content

Commit 751e883

Browse files
authored
Merge pull request #887 from lk-j/v1.7.15-lock-change
V1.7.15 lock change
2 parents 0b3b436 + 7b272d9 commit 751e883

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

โ€Žclient/xclient.goโ€Ž

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -326,17 +326,17 @@ func (c *xClient) getCachedClient(k string, servicePath, serviceMethod string, a
326326
}
327327

328328
c.mu.Lock()
329+
defer c.mu.Unlock()
330+
329331
client = c.findCachedClient(k, servicePath, serviceMethod)
330332
if client != nil {
331333
if !client.IsClosing() && !client.IsShutdown() {
332-
c.mu.Unlock()
333334
return client, nil
334335
}
335336
c.deleteCachedClient(client, k, servicePath, serviceMethod)
336337
}
337-
338+
338339
client = c.findCachedClient(k, servicePath, serviceMethod)
339-
c.mu.Unlock()
340340

341341
if client == nil || client.IsShutdown() {
342342
generatedClient, err, _ := c.slGroup.Do(k, func() (interface{}, error) {
@@ -355,9 +355,7 @@ func (c *xClient) getCachedClient(k string, servicePath, serviceMethod string, a
355355

356356
client.RegisterServerMessageChan(c.serverMessageChan)
357357

358-
c.mu.Lock()
359358
c.setCachedClient(client, k, servicePath, serviceMethod)
360-
c.mu.Unlock()
361359

362360
// forget k only when client is cached
363361
c.slGroup.Forget(k)

0 commit comments

Comments
ย (0)