Thank you for your quick answer, it is of a great help. have a nice day.
On Thursday, March 4, 2021 at 5:11:40 PM UTC+1 axel.wa...@googlemail.com wrote: > Interesting question. I think the code is fine. From the spec > <https://golang.org/ref/spec#Go_statements>: > > > The function value and parameters are evaluated as usual in the calling > goroutine, but unlike with a regular call, program execution does not wait > for the invoked function to complete. > > This means `onedoer.do` is immediately evaluated, before the loop > continues. The usual issue with loops is due to closures. So, this would be > wrong and have exactly the issue you are worried about: > > for _, onedoer := range d { > go func() { oneoder(&wg) } > } > > But the go statement isn't equivalent to that, it doesn't close over the > function value, it evaluates it. > > On Thu, Mar 4, 2021 at 5:01 PM Julien Pivotto <roidel...@gmail.com> wrote: > >> Hello, >> >> In the following example: https://play.golang.org/p/yz_ifHC-Hut >> >> for _, onedoer := range d { >> go onedoer.do(&wg) >> } >> >> Should I pass the function onedoer.do as a parameter of the go routine: >> https://play.golang.org/p/WHPahoayDbM ? >> >> for _, onedoer := range d { >> go func(od *doer, w *sync.WaitGroup) { >> od.do(w) >> }(onedoer, &wg) >> } >> >> I am wondering if `go func()` could return before figuring out which >> function to run, creating a race with the loop. >> >> >> Thanks in advance! >> >> -- >> 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...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/golang-nuts/6547c92f-a009-4fd4-abb2-801b2c44ea67n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/golang-nuts/6547c92f-a009-4fd4-abb2-801b2c44ea67n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/f427c44d-a2b3-416d-8496-bf308216a860n%40googlegroups.com.