Hacker News new | ask | show | jobs
by dodobirdlord 322 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.
2 comments

> 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!

> 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.

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