HackerTrans
TopNewTrendsCommentsPastAskShowJobs

FFFXXX

no profile record

comments

FFFXXX
·11 месяцев назад·discuss
I think you are quoting from https://learn.microsoft.com/en-us/dotnet/api/system.threadin...

"In C#, using the volatile modifier on a field guarantees that every access to that field is a volatile memory operation"

This makes it sound like you are right and the volatile keyword has the same behaviour as the Volatile class which explicitly says it has acquire-release ordering.

But that seems to contradict "The volatile keyword doesn't provide atomicity for operations other than assignment, doesn't prevent race conditions, and doesn't provide ordering guarantees for other memory operations." from the volatile keyword documentation?
FFFXXX
·11 месяцев назад·discuss
The part about C# volatile accesses using release-acquire ordering seems to be wrong if I read the C# docs correctly.

"There is no guarantee of a single total ordering of volatile writes as seen from all threads of execution"

https://learn.microsoft.com/en-us/dotnet/csharp/language-ref...