package errorx import "sync/atomic" // AtomicError defines an atomic error. type AtomicError struct { err atomic.Value // error } // Set sets the error. func (ae *AtomicError) Set(err error) { ae.err.Store(err) } // Load returns the error. func (ae *AtomicError) Load() error { if v := ae.err.Load(); v != nil { return v.(error) } return nil }