Skip to content
  • Daniel Vrátil's avatar
    Use QIODevice::readyRead() to wait for incoming data · 2058ae6c
    Daniel Vrátil authored
    Also avoid any reading code to be executed in a slot connected to
    readyRead() signal because Qt will not emit readyRead() signal
    recursively. This change is needed to make Akonadi work on Windows,
    because the blocking QLocalSocket::waitForReadyRead() does not work
    reliably there.
    
    On Linux QLocalSocket::waitForReadyRead() is used internally only
    in DataStream for performance reasons. On Windows DataStream will
    internally instantiate a QEventLoop and wait for the readyRead()
    signal, which is more expensive, especially since DataStream can
    get into the wait state multiple times while reading a single
    command.
    2058ae6c