A little imagination would help us all greatly. Select part would obviously be in a for loop. Like this:
func worker() { // do work, prepare whatever for some_condition{ // do stuff Select { ch <- true: go worker() // try to handover some jobs default: // max goroutine limit // do them yourself } // do stuff, increment counter } // do remaining jobs // make way <- ch return } 22 Şub 2019 Cum 15:30 tarihinde Robert Engels <reng...@ix.netcom.com> şunu yazdı: > I’m pretty sure this code is incorrect and there will only be a single > routine doing any “real work”, although the comment //do remaining jobs is > unclear because there is no code. > > > On Feb 22, 2019, at 12:42 AM, Serhat Şevki Dinçer <jfcga...@gmail.com> > wrote: > > > > Another use case is wait groups with Max number of goroutines allowed: > > > > ch:= make(chan bool, 10) > > > > func waiter() { > > ch <-true > > go worker() > > > > // when empty, all jobs are finished > > waitempty(ch) > > } > > > > func worker() { > > // do work > > > > Select { > > ch <- true: > > go worker() // try to handover some jobs > > default: > > // max goroutine limit > > // do them yourself > > } > > > > // do remaining jobs > > > > // make way > > <- ch > > return > > } > > > > -- > > You received this message because you are subscribed to the Google > Groups "golang-nuts" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to golang-nuts+unsubscr...@googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.