Raymond Chen объясняет, как на самом деле устроены C++ futures

C++ futures part 1: The mental model

Raymond Chen разбирает внутреннее устройство std::future, std::promise, std::packaged_task и std::async. Все они построены вокруг одной невидимой сущности — «источника», который умеет один раз установить значение или исключение, дождаться результата и выдать его. Автор показывает упрощённую реализацию с мьютексом, condition variable и union, объясняя, почему повторная установка значения запрещена, а полученное значение помечается как использованное.

Я пишу эту серию, потому что постоянно забываю, как всё это работает, но когда записываю — запоминаю лучше.

Ещё за этот день

2026-10-21