Remix.run Logo
dodobirdlord 5 days ago

If the variables are word-sized, sure. But what if they are larger? Now a race condition between one thread writing and another thread reading or writing a variable is a memory safety issue.

zozbot234 5 days ago | parent | next [-]

> Now a race condition between one thread writing and another thread reading or writing a variable is a memory safety issue.

No it isn't, because the torn write cannot have arbitrary effects that potentially break the program. It only becomes such if you rely on such a variable to establish an invariant about memory that's broken if a torn write occurs (such as by encoding a ptr+len in it), which is just silly. Don't do that!

gpderetta 5 days ago | parent [-]

> which is just silly. Don't do that!

tell that to the Go runtime, which relies on slices always being valid and not being able to create invalid ones.

kazinator 5 days ago | parent | prev [-]

Don't have such things, if you know what's good for you, or else don't have threads.