Hi, golang nuts,

Let's think about this snippet: https://play.golang.org/p/3cNGho3gWTG

In the code snippet, a ticker is activating and another that that is 
closing, it seems that they can happen concurrently and result 
in two different outcomes: either ticker case being executed first or the 
other way around.
It is because of the pseudo-randomization of the select statement.

Intuitively, the close statement should happens-before select statement 
that starts choosing which case 
should be executing, and select a closed channel with the highest priority 
to prevent another receive case being executed once more.

My questions are:
Does the Go team or anybody else think of this memory order before? What 
was the decision that didn't make it?
If not, is it worth to be defined within the language? There are no 
language changes and only affects the runtime implementation.

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 

Reply via email to