diff options
author | 2022-04-26 20:30:25 -0700 | |
---|---|---|
committer | 2023-01-31 15:16:42 +0100 | |
commit | 83b4c9ebc87d0fddf4e638f13e3af1483912e3a5 (patch) | |
tree | 47840b84c0fd3cb226eab2ecb3dbce0617163406 /vendor/codeberg.org/gruf/go-errors/v2/once.go | |
parent | [chore] update URLs to forked source (diff) | |
download | gotosocial-83b4c9ebc87d0fddf4e638f13e3af1483912e3a5.tar.xz |
[chore] remove vendor
Diffstat (limited to 'vendor/codeberg.org/gruf/go-errors/v2/once.go')
-rw-r--r-- | vendor/codeberg.org/gruf/go-errors/v2/once.go | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/vendor/codeberg.org/gruf/go-errors/v2/once.go b/vendor/codeberg.org/gruf/go-errors/v2/once.go deleted file mode 100644 index 83a45a61f..000000000 --- a/vendor/codeberg.org/gruf/go-errors/v2/once.go +++ /dev/null @@ -1,47 +0,0 @@ -package errors - -import ( - "sync/atomic" - "unsafe" -) - -// OnceError is an error structure that supports safe multi -// threaded usage and setting only once (until reset). -type OnceError struct{ err unsafe.Pointer } - -// NewOnce returns a new OnceError instance. -func NewOnce() OnceError { - return OnceError{ - err: nil, - } -} - -// Store will safely set the OnceError to value, no-op if nil. -func (e *OnceError) Store(err error) { - // Nothing to do - if err == nil { - return - } - - // Only set if not already - atomic.CompareAndSwapPointer( - &e.err, - nil, - unsafe.Pointer(&err), - ) -} - -// Load will load the currently stored error. -func (e *OnceError) Load() error { - return *(*error)(atomic.LoadPointer(&e.err)) -} - -// IsSet returns whether OnceError has been set. -func (e *OnceError) IsSet() bool { - return (atomic.LoadPointer(&e.err) != nil) -} - -// Reset will reset the OnceError value. -func (e *OnceError) Reset() { - atomic.StorePointer(&e.err, nil) -} |