Исходил из того как работает компьютер(приближённо). Что если прервалась первая операция записи, началась и завершилась вторая, а потом закончилась первая - у нас будут валидные данные, если записывались одинаковые данные бит в бит.
И сломало то, что UB означает что может произойти всё что угодно.
То есть по факту имею race condition и не могу гарантировать какой поток запишет первым(или какая ситуация) - но тут вспоминаю про UB.
И произойти всё что угодно. Хотя всё равно лишь операция записи. Она прервётся и переустановит мне ось?
Вот именно это. Но UB есть UB, окей. Потому что не могу гарантировать что это так просто на самом деле происходит в ОС.
ub это же не "всё что угодно". если у тебя уб, это значит что в этом месте программа не всегда будет вести себя одинакового при разных фазах луны, железа, компиляторе. т.е. int i;
if (i)
set_bottle_in_your_ass()