8 ms·
> setting a field to true from potentially multiple threads can be a completely meaningful operation e.g. if you only care about if ANY of the threads have fini
by kiitos 10mo ago
> setting a field to true from potentially multiple threads can be a completely meaningful operation e.g. if you only care about if ANY of the threads have finished execution.
this only works when the language defines a memory model where bools are guaranteed to have atomic reads and writes
so you can't make a claim like "setting a field to true from ... multiple threads ... can be a meaningful operation e.g. if you only care about if ANY of the threads have finished execution"
as that claim only holds when the memory model allows it
which is not true in general, and definitely not true in go
assumptions everywhere!!
- gf000 10mo ago> can never be safe in a concurrency setting. In any language. Then I give an example of a language where it's safe I don't get your point. The negation of all is a single example where it doesn't apply.
- zbentley 10mo agoGP didn’t say “setting a ‘bool’ value to true”, it referred to setting a “field”. Interpreted charitably, this would be done in Go via a type that does support atomic updates, which is totally possible.
- kiitos 10mo ago"setting a field to true" clearly means `x.field = value` and not `x.field.Set(value)`