К>- завести семафор, и главный поток должен попытаться опустить его n раз по числу ожидаемых результатов,
Закладываться на знание количества ожидаемых результатов слишком зыбкое и трудно поддерживаемое решение.
Здравствуйте, turbocode, Вы писали:
К>>- завести семафор, и главный поток должен попытаться опустить его n раз по числу ожидаемых результатов, T>Закладываться на знание количества ожидаемых результатов слишком зыбкое и трудно поддерживаемое решение.
Ну почему же! Создал задачу, поставил себе плюсик.
Либо по-другому: задача запустилась, сама поставила плюсик. (Единственно, — можно поймать гонку, когда задача ещё не решила, что будет выдавать результат, а сессия уже собралась завершаться).
Главное — выразить свою проблему в терминах "ожидаемое условие" и "моменты, когда это условие изменяется".
К>Ну почему же! Создал задачу, поставил себе плюсик. К>Либо по-другому: задача запустилась, сама поставила плюсик. (Единственно, — можно поймать гонку, когда задача ещё не решила, что будет выдавать результат, а сессия уже собралась завершаться).
Нужно общее, прозрачное и легко расширяемое решение.
Здравствуйте, turbocode, Вы писали:
T>Нужно общее, прозрачное и легко расширяемое решение.
Я тебе два предложил: старые добрые семафоры и новомодные фьючерсы. И то, и другое полностью отвечает твоим требованиям.
Если логика слишком заковыриста, чтобы выразить через эти примитивы, сформулируй её в терминах ожидания условий, — и реализуй на кондишенах.