Timeout returns a receive-only channel that will be closed after the
specified Duration. The value of a structure like this over a direct call to
time.Sleep is that a channel can participate in a select
type ReadyWait struct {
// contains filtered or unexported fields
}
ReadyWait is a structure that manages a channel to be used for simple
readiness notification. The value of a structure like this over a Cond is
that a channel can participate in a select