Would it make more sense to invert the send/receive semantics here? i.e. have this goroutine send a "true" on a "permits" channel every minWait seconds, and have the other goroutine do a 

```
var maySendAll bool
select {
    case <-permits:
        maySendAll = true
    default:
        maySendAll = false
}
```