### Proposal Details The channel length can variable. c := make(chan int , `<MaxLen>` [,`<MinLen>`] [,`<TimeDuration>`]) first: cap(c) = ` <MinLen>` if full: cap(c) = cap(c) * 2 // Max `<MaxLen>` if len(c) < cap(c) /4 && timeout `<TimeDuration>`{ cap(c) = cap(c) / 2 // Min `<MinLen>` }