Powiedzmy, że mamy dwa wątki, jeden czyta bool w pętli, a drugi może go przełączać w określonych momentach. Osobiście myślę, że to powinno być atomowe, ponieważ sizeof(bool)
w C++ to 1 bajt i nie czytasz/zapisujesz bajtów częściowo, ale chcę być w 100% pewny.Czy operacja odczytu/zapisu bool może być niepodzielona na x86?
Tak tak czy nie?
EDIT:
także w przyszłości, czy to samo dotyczy int
?
Czy jest to mniej niż rozmiar słowa architektury bazowej, zarówno * atomowej *, jak i * mniej wydajnej * niż to możliwe? –
http://stackoverflow.com/questions/8037289/is-mutex-required-for-1-byte-shared-memory sugeruje, że jest nieatomowa. –
http://stackoverflow.com/questions/8517969/is-this-correct-way-toatomically-read-and-write-a-bool sugeruje, że jest atomowy "w większości maszyn". –