Библиотека задач по C++ | тесты, код, задания
🍟 Задача на выходные: свой promise/future
Лучший способ понять std::promise — собрать его. Допиши общее состояние (shared state) на мьютексе и condition_variable.
template <class T>
struct SharedState {
std::mutex m;
std::condition_variable cv;
std::optional<T> value;
bool ready = false;
void set(T v) {
// TODO: под мьютексом положить value, поднять ready, разбудить ждущих
}
T get() {
// TODO: дождаться ready под cv, вернуть value
}
};
‼️ Условие: get() блокируется, пока не вызовут set(), и корректно работает, если set() случился до get(). «Ага-момент» — почему именно cv.wait с предикатом, а не голый wait.
✍️ Реализацию присылай в комментариях
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
1 · 491 ·