Всем привет. Не могу придумать как лучше решить такую задачу на Qt-шных сигналах. Есть объект-обработчик данных и четыре поставщика. Обработчик живет на главном потоке, поставщики каждый на своем Qthread (итого 5 потоков). Поставщик передает запрос обработчику с помощью сигнала, а обработчик возвращает результат, только когда получит запрос еще от одного поставщика (пришла пара - можно посчитать результат и отдать каждому свой). Поставщик не знает, придет он первым или вторым, поэтому сигнал один и тот же. Вопрос в том, как лучше передавать результат обработки поставщику (и первому и второму). Сигнал получают все, кто подписан, а мне нужно, чтобы первый получил сигнал со своими данными, а второй со своими. Остальные два поставщика вообще не должны в этом участвовать.
Использовать разделяемые данные не хочу (суть задачи не в том, как решить конкретно эту задачу оптимально, а как в Qt организовать передачу сообщения от одного потока другому, но не широковещательно, а уникастом). К тому же разделяемые данные принесут все сложности параллельного программирования, а при обмене сообщениями все параллельность разруливается библиотекой и заканчивается на обмене этими сообщениями.
Сделал решение в котором у поставщика есть отдельный метод, эмитирующий сигнал, а в конструкторе объекта-поставщика он сам себя подключает к этому сигналу. Но, возможно, есть решение лучше.