diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-02-20 23:39:36 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2017-02-23 18:00:02 +0800 |
commit | ec7f81f4bc11c6f8203ec1d3055c9a09a244ff43 (patch) | |
tree | 5ec75ddab7749a9d0c47a97d6f638b52e6ebc6bb /log/handler_go14.go | |
parent | 29fac7de448c85049a97cbec3dc0819122bd2cb0 (diff) | |
download | dexon-ec7f81f4bc11c6f8203ec1d3055c9a09a244ff43.tar.gz dexon-ec7f81f4bc11c6f8203ec1d3055c9a09a244ff43.tar.zst dexon-ec7f81f4bc11c6f8203ec1d3055c9a09a244ff43.zip |
log, vendor: vendor in log15 inline into our codebase
Diffstat (limited to 'log/handler_go14.go')
-rw-r--r-- | log/handler_go14.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/log/handler_go14.go b/log/handler_go14.go new file mode 100644 index 000000000..05dedbf2a --- /dev/null +++ b/log/handler_go14.go @@ -0,0 +1,23 @@ +// +build go1.4 + +package log + +import "sync/atomic" + +// swapHandler wraps another handler that may be swapped out +// dynamically at runtime in a thread-safe fashion. +type swapHandler struct { + handler atomic.Value +} + +func (h *swapHandler) Log(r *Record) error { + return (*h.handler.Load().(*Handler)).Log(r) +} + +func (h *swapHandler) Swap(newHandler Handler) { + h.handler.Store(&newHandler) +} + +func (h *swapHandler) Get() Handler { + return *h.handler.Load().(*Handler) +} |