1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
package worker type Scheduler struct { pool chan any } func NewScheduler(count uint) *Scheduler { return &Scheduler{ pool: make(chan any, count), } } func (self *Scheduler) Take() { self.pool <- nil } func (self *Scheduler) Return() { <-self.pool }