# Functions
NewBool returns an atomics.Bool initialized with value.
# Variables
ErrWaitGroupDraining is returned from WaitGroup.Add(), if WaitGroup is in draining state.
# Structs
Bool is an atomic boolean, no need for locking which makes the code faster and simpler.
Once is similar to sync.Done except that once.Do() returns true, if this was the first call to once.Do().
WaitGroup is similar to sync.WaitGroup, except it can enter a draining state at which point additional calls to Add will fail and returns ErrWaitGroupDraining.