QSerialPort: call waitForReadyRead() in a slot connected to readyRead
-
Hello,
I do not fully understand if this is legitimate but I use consecutively write, waitForBytesWritten and particularly waitForReadyRead in a slot connected to the signal readyRead().The QIODevice::waitForReadyRead() description seems to indicate this is legitimate since
"readyRead() is not emitted recursively; if you reenter the event loop or call waitForReadyRead() inside a slot connected to the readyRead() signal, the signal will not be reemitted (although waitForReadyRead() may still return true)."But the description of QSerialPort::waitForReadyRead seems to contradict the previous description:
"The function returns true if the readyRead() signal is emitted and there is new data available for reading; otherwise it returns false (if an error occurred or the operation timed out)."In my case, this does not work, ie waitForReadyRead returns a timeout error, when the signal and the slot are connected in DirectConnection, but works if they are explicitly connected in QueueConnection.
Thanks
-
-
This "contradict" description also is and for the QAbstractSocket. In principle, nobody understands as it there has to be, since everywhere a behavior is different.
-
Just do not use waitForXX() inside of slot to avoid of some problems.
-