On Tue, Oct 10, 2017 at 5:34 AM, Jay Guo <guojiannan1...@gmail.com> wrote:
>
> It is suggested in https://golang.org/pkg/sync/#WaitGroup that:
>
> // Note that calls with a positive delta that occur when the counter is zero
> // must happen before a Wait.
>
> I wonder what's the reason in terms of `sync` implementation.
>
> Essentially I'm trying to implement following logic:
>
> for {
>   waitForAllTaskToComplete()
>   ...
> }
>
> where we may have no task in flight initially.

That rule clarifies that if all the Done calls happen before the
program gets around to calling Wait, the Wait will not block.
Basically, a Wait with a count of zero might mean that nobody has
called Add, or it might mean that all calls to Add have already called
Done.  Clearly in the latter case we should not block, and the effect
is that we can not block in the former case as well.

Ian

-- 
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.

Reply via email to