[Development] Reviews needed before android integration in two weeks

Thiago Macieira thiago.macieira at intel.com
Wed Feb 6 20:19:32 CET 2013


On quarta-feira, 6 de fevereiro de 2013 10.23.25, BogDan wrote:
> On Android all events are coming from another thread, and some time a few
> events are not delivered by the event loop. It happens because if an event
> is  added to the event loop when the event loop just started to
> process/deliver the  events this event is not sent because the event loop
> "goes to sleep" (calls the QEventDispatcherUNIX::select(...) function), my
> patch prevents the call of select function if a new event was just added.

That explanation is not specific to Android. It looks like a real case for any 
postEvent. Therefore, this change -- as described -- must be in QtCore or 
nowhere at all.

However, your explanation is either mistaken or incomplete. The select() call 
will not sleep because the pipe or eventfd will have unread data: instead, it 
will wake up immediately. Then the event dispatcher will realise that there 
are more events in the queue and will proceed to dispatch them.

I don't doubt that you found a deadlock condition somehow. But I am not 
convinced that you understood it correctly or that you fixed it properly.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130206/9599d316/attachment.sig>


More information about the Development mailing list