code: func (w *KeyedValue) Value(k string) interface{} {
  	w.lock.Lock()
  	v, val := w.valueWaiter(k)
  	w.lock.Unlock()
  
  	// If we have no waiter, then return the value
  	if val == nil {
  		return v
  	}
  
  	// We have a waiter, so wait
  	return val.Value()
  }
docs: // Value returns the value that was set for the given key, or blocks
  // until one is available.