Defer adds a function to be called when [DeferredInit.Do] is called for the first time. It returns true on success, or false if [DeferredInit.Do] has already been called.
(f func() error)
| 45 | // is called for the first time. It returns true on success, |
| 46 | // or false if [DeferredInit.Do] has already been called. |
| 47 | func (d *DeferredFuncs) Defer(f func() error) bool { |
| 48 | d.m.Lock() |
| 49 | defer d.m.Unlock() |
| 50 | if d.err.Load() != nil { |
| 51 | return false |
| 52 | } |
| 53 | d.funcs = append(d.funcs, f) |
| 54 | return true |
| 55 | } |
| 56 | |
| 57 | // MustDefer is like [DeferredFuncs.Defer], but panics |
| 58 | // if [DeferredInit.Do] has already been called. |