atomicerror.go 265 B

123456789101112131415161718
  1. package errorx
  2. import "sync/atomic"
  3. type AtomicError struct {
  4. err atomic.Value // error
  5. }
  6. func (ae *AtomicError) Set(err error) {
  7. ae.err.Store(err)
  8. }
  9. func (ae *AtomicError) Load() error {
  10. if v := ae.err.Load(); v != nil {
  11. return v.(error)
  12. }
  13. return nil
  14. }