MCPcopy
hub / github.com/redis/go-redis / AddPoolHook

Method AddPoolHook

internal/pool/pool.go:455–469  ·  internal/pool/pool.go::ConnPool.AddPoolHook

AddPoolHook adds a pool hook to the pool.

(hook PoolHook)

Source from the content-addressed store, hash-verified

453
454// AddPoolHook adds a pool hook to the pool.
455func (p *ConnPool) AddPoolHook(hook PoolHook) {
456 // Lock-free read of current manager
457 manager := p.hookManager.Load()
458 if manager == nil {
459 p.initializeHooks()
460 manager = p.hookManager.Load()
461 }
462
463 // Create new manager with added hook
464 newManager := manager.Clone()
465 newManager.AddHook(hook)
466
467 // Atomically swap to new manager
468 p.hookManager.Store(newManager)
469}
470
471// RemovePoolHook removes a pool hook from the pool.
472func (p *ConnPool) RemovePoolHook(hook PoolHook) {

Callers 3

TestPoolWithHooksFunction · 0.95

Calls 4

initializeHooksMethod · 0.95
CloneMethod · 0.65
AddHookMethod · 0.65
LoadMethod · 0.45

Tested by 3

TestPoolWithHooksFunction · 0.76