diff options
author | Matthew Holt <[email protected]> | 2019-09-03 12:10:11 -0600 |
---|---|---|
committer | Matthew Holt <[email protected]> | 2019-09-03 12:10:11 -0600 |
commit | ccfb12347b1d2f65b279352116527df430e0fba6 (patch) | |
tree | 6483eadfad67c87a280b3e77ec8bd50a730f98e7 /usagepool.go | |
parent | 026df7c5cb33331d223afc6a9599274e8c89dfd9 (diff) | |
download | caddy-ccfb12347b1d2f65b279352116527df430e0fba6.tar.gz caddy-ccfb12347b1d2f65b279352116527df430e0fba6.zip |
reverse_proxy: Implement active health checks
Diffstat (limited to 'usagepool.go')
-rw-r--r-- | usagepool.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/usagepool.go b/usagepool.go index 3b8e975f0..dd4f60671 100644 --- a/usagepool.go +++ b/usagepool.go @@ -80,6 +80,14 @@ func (up *UsagePool) LoadOrStore(key, val interface{}) (actual interface{}, load return } +// Range iterates the pool the same way sync.Map.Range does. +// This does not affect usage counts. +func (up *UsagePool) Range(f func(key, value interface{}) bool) { + up.pool.Range(func(key, value interface{}) bool { + return f(key, value.(*usagePoolVal).value) + }) +} + type usagePoolVal struct { usage int32 // accessed atomically; must be 64-bit aligned for 32-bit systems value interface{} |