code: func (f *Selectable) Fill(v interface{}, e error) error {
  	f.m.Lock()
  	if f.filled == 0 {
  		f.val = v
  		f.err = e
  		atomic.StoreUint32(&f.filled, 1)
  		w := f.wait
  		f.wait = closed
  		if w != nil {
  			close(w)
  		}
  	}
  	f.m.Unlock()
  	return f.err
  }
docs: // Fill sets value for future, if it were not already fullfilled
  // Returns error, if it were already set to future.