Тогда более подробно о ситуации:
есть устройства, работающие по ком-порту. Необходимо с них считывать информацию, не тормозя основной поток.
Создал наследника от QThread. В нем объект QtSerialPort. 
C++ (Qt)
connect(m_port, SIGNAL(readyRead()), this, SLOT(slot_readDataFromPort()));
 
Слот slot_readDataFromPort() в каком треде будет выполняться?
На счет мютекса: посылаю комманду в ком-порт и ожидаю прихода данных от устройства
C++ (Qt)
    QMutex m_waitEndCommand;
    QWaitCondition m_isEndCommand;
 
void CommandThread::run()
{
    isWork = true;
 
    // Основной цикл посылки комманд на COM-порт
    while(isWork)
    {
        if(!m_waitEndCommand.tryLock())
            return;
 
        m_port->write(m_rigCommands.status.at(i).commandArray);
        m_isEndCommand.wait(&m_waitEndCommand, m_timeOut); // Вот тут у меня все время срабатывает  по таймауту
        m_waitEndCommand.unlock();
    }
 
    // Перед окончанием - закрываем COM-порт
    m_port->close();
}
 
 
слот в треде, который получает данные
C++ (Qt)
void CommandThread::slot_readDataFromPort()
{
    m_byteArea += m_port->readAll();
    .... тут я полученные данные обрабатываю
    m_waitEndCommand.unlock();
}