Здравствуйте, vdimas, Вы писали:
V>>>sig_atomic_t — должен гарантировать атомарность записи в эту переменную, для тех времён было достаточно, чтобы такая переменная была шириной в машинное слово. V>·>Понятие многопоточности появилось в языке совсем недавно. V>Понятие многопоточности в языке появилось давно, одновременно с ключевым словом volatile.
volatile не связана с многопоточностью. Или подтверждай слова ссылкой на Стандарт, твоё бла-бла неинтересно.
V>Скорее всего ты имеешь ввиду не в языке, а в новой стандартной библиотеке? V>Потому что нововведения именно в язык никак с многопоточностью не связаны.
Читай memory model, я ж уже несколько раз упоминал.
V>·>Почему ты вообще решил, что sig_atomic_t имеет хоть какое-то отношение к многопоточности? V>Странный вопрос. ))
V>Если рассматривать современную мейнстримовую многопоточность с вытеснением (а было дохера разных моделей многопоточности в те весёлые года), то сначала появилась реализация такой многопоточности поверх однопроцессорных архитектур. Вытеснение происходит за счёт асинхронного механизма прерывания. Но этот механизм гарантирует, что текущая исполняемая инструкция будет выполнена полностью перед тем, как текущий поток исполнения будет прерван. Именно поэтому требовалось читать и писать из/в память одной инструкцией.
Вот только такая многопоточность появилась на уровне оперы и железа, а сам язык "ничего не знал" об этом, поэтому никаких гарантий давать не мог, как карта ляжет, так себя код и поведёт, UB. Утверждать, что "в С++ была многопоточность" равноценно "в С++ есть http". Нюанс в том, что многопоточность — особенная штука, с т.з. ЯП, т.к. влияет непосредственно на поведение языковых конструкций, а http такими особенностями не обладает. Первыми "догадались" об этом Sun с их JMM.
V>Классика жанра таких систем — System/360. V>Конкретно sig_atomic_t был введён для разрабатываемой для PDP-7 UNIX.
V>Обе системы однопроцессорные, мультизадачные, с похожим механизмом прерываний, который (механизм) дожил практически в неизменном виде до эпохи микропроцессоров и тоже стал мейнстримовым.
Осталось тебе разобраться какое это отношение имеет непосредственно к ЯП С/С++. И подкрепляй свои слова ссылками на Стандарт.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай