А зачем вообще 1-ый поток, если вы его один фиг ждете?
А вообще посмотри QObject::connect с параметром Qt::BlockingQueuedConnection.
Дело в том, что первый поток помимо вычисления valX, готовит данные для графика и посылает сигнал виджету с графиком, когда необходимо обновить изображение ... потому и использую поток что бы GUI "не заморозить". Вообще QObject::connect я и использую с параметром Qt::BlockingQueuedConnection. но тут есть небольщая сложность. сначала я вызываю функцию с необходимыми параметрами для потока (что я и имел ввиду в алгоритме под "запускаем поток 1"), которые присваиваю членам класса и потом в этой функции уже в самом конце выполнения вызываю start(QThread::NormalPriority), что конечно же приводит к неверному, точнее сказать к нежелаемому результату работы потоков ... может как-то можно сразу запустить поток передав параметры непосредственно ему.
Про wait() знаю, но как использовать это не понимаю, так как поток 1 ничего не знает про поток 2 и наоборот, а связь между ними сделал через сигнал/слот.