Descriptioncmd/gc: fix order of channel evaluation of receive channels
Normally, an expression of the form x.f or *y can be reordered
with function calls and communications.
Select is stricter than normal: each channel expression is evaluated
in source order. If you have case <-x.f and case <-foo(), then if the
evaluation of x.f causes a panic, foo must not have been called.
(This is in contrast to an expression like x.f + foo().)
Enforce this stricter ordering.
Fixes issue 8336.
Patch Set 1 #Patch Set 2 : diff -r bdaf0d8b37b6743f462e4a63563025146f2c595f https://code.google.com/p/go/ #Patch Set 3 : diff -r bdaf0d8b37b6743f462e4a63563025146f2c595f https://code.google.com/p/go/ #Patch Set 4 : diff -r 137628000381f33451198d1234eb1127d3650cfc https://code.google.com/p/go/ #
MessagesTotal messages: 3
|