Здравствуйте, vdimas, Вы писали:
V>>>>>sig_atomic_t — должен гарантировать атомарность записи в эту переменную, для тех времён было достаточно, чтобы такая переменная была шириной в машинное слово.
V>>>·>Понятие многопоточности появилось в языке совсем недавно.
V>>>Понятие многопоточности в языке появилось давно, одновременно с ключевым словом volatile.
V>·>volatile не связана с многопоточностью.
V>
Ты и ссылку на стандарт С++ привести можешь? Или ты слился как alex_public выше.
V>·>Читай memory model, я ж уже несколько раз упоминал.
V>Ты прочесть написанное уже не в состоянии, что ле? (выделил)
Читай memory model, я ж уже несколько раз упоминал.
V>В случае sig_atomic_t требовалось протащить то "знание", что чтение и запись в эту переменную будет выполняться одной инструкцией процессора.
V>Этого достаточно, чтобы асинхронный механизм прерываний работал в такой программе непротиворечиво.
Верно. Ты повторяешь мои цитаты из стандарта, но не отвечаешь на вопрос "какое это всё имеет отношение к многопоточности".
V>·>поэтому никаких гарантий давать не мог, как карта ляжет, так себя код и поведёт, UB.
V>Это ты сейчас из пальца насасывать изволишь, а механизм сигналинга в Unix изначально был реализован через прерывания и этот механизм работает прекрасно.
V>Иначе бы ты не смог сегодян написать в коде kill(pid, SIGTERM) или в консоли kill 4242 -9.
Асинхронный механизм прерываний != многопоточность.