type promise … var _ … // NewWriteOnce makes a new thread-safe WriteOnce. // // If `initial` is non-nil then that value is Set at creation time. // // If a `Get` is waiting soon after the channel associated with the // `doneCtx` becomes selectable (which never happens for the nil // channel) then `Set(doneVal)` effectively happens at that time. func NewWriteOnce(initial interface{ … } func (p *promise) Get() interface{ … } func (p *promise) Set(value interface{ … }