Russian Qt Forum

Qt => Работа с сетью => Тема начата: qt_user от Ноябрь 19, 2011, 23:46



Название: работа waitForReadyRead()
Отправлено: qt_user от Ноябрь 19, 2011, 23:46
Доброго времени суток,
Как стало известно ф-ция waitForReadyRead() блокирует очередь обработки событий пока сигнал readyRead()
не возникнет, но как она узнает о сигнале readyRead() если она блочит очередь обработки событий?


Название: Re: работа waitForReadyRead()
Отправлено: asvil от Ноябрь 20, 2011, 00:47
возможно она делает select(sockets), копирует во внутренний буфер, а затем выполняет очередь, в которой socketnotifier проверяет размер буфера и вызывает сигналы.


Название: Re: работа waitForReadyRead()
Отправлено: qt_user от Ноябрь 20, 2011, 01:03
возможно она делает select(sockets), копирует во внутренний буфер, а затем выполняет очередь, в которой socketnotifier проверяет размер буфера и вызывает сигналы.
в таком случае даже если сигнал будет вызван, то по идее он всеравно не дойдет до получателя, ведь
waitForReadyRead заблочила обработку очереди событий, скидывается мне что эта ф-ция в цикле
делает processEvents() c ExcludeUserInput флагом, но эт только предположение :)