I tripped across a situation where one of my Qt5 applications that used a periodic QTimer stops receiving timeout signals after 1 hour 10 minutes of normal operation.
(This is in Genode 18.08, x86_32 and x86_64, nova and seL4.)
The same application keeps on ticking (for many hours at least) when compiled and run under Linux.
A Qt Forum participant speculates "a 2^32 wraparound? Because 4294967296 (2^32) microseconds is 4295 seconds." This is just about the observed time.
The Qt5 documentation suggests that some Qt timers on some platforms can have this problem--it depends on the underlying clock source.
Can anyone comment on the relevant clock source for QTimer in the Genode port?
For reference, a native Genode Timer connection does not exhibit this problem, so using it in this application was a viable workaround.
// Steve
Hi Steven,
On 01.04.2019 16:20, Steven Harp wrote:
Can anyone comment on the relevant clock source for QTimer in the Genode port?
not 100% sure, but it seems to be a combination of the 'poll()' timeout (via 'QEventDispatcherUNIX::processEvents()') and 'clock_gettime()' (via 'QTimerInfoList::activateTimers()', which is called after 'poll()' returns to find out which timers are to be signalled).
Christian