atomicerror.go 281 B

123456789101112131415161718192021
  1. package errorx
  2. import "sync"
  3. type AtomicError struct {
  4. err error
  5. lock sync.Mutex
  6. }
  7. func (ae *AtomicError) Set(err error) {
  8. ae.lock.Lock()
  9. ae.err = err
  10. ae.lock.Unlock()
  11. }
  12. func (ae *AtomicError) Load() error {
  13. ae.lock.Lock()
  14. err := ae.err
  15. ae.lock.Unlock()
  16. return err
  17. }