On Saturday, 14 March 2015 at 18:24:51 UTC, Russel Winder wrote:
I see no threads in this code! :-)
But yes, it certainly shows you can create shared-memory
"multi-threading" this way, but anyone actually doing it would
be being
very silly. Sending addresses down multiple channels is obvious
here and
definitely not the right thing to do unless the datum contains
an
embedded lock which is then used. cf.
https://talks.golang.org/2012/10things.slide#3
So now we are going from Go is safe, to well, it is obviously not
safe (then, why were you so eager to have a proof ?) but nobody
in their right mind would do something like this.
But this is only a short snippet. This can happen the same way in
a million line codebase, and good luck finding it.
Also, the "no good programmer would do this" is an immediate red
flag. Not only programmer will do this, but the one that claim
they won't will do it even sooner as they evidently lack self
awareness.