[Interest] QAbstractEventDispatcher - registerSocketNotifier(), unregisterSocketNotifier()

Narolewski Jakub izowiuz at gmail.com
Sat Dec 28 20:31:07 CET 2019


My first email was scrubbed to HTML attachment - I'm resending it form
different email client in hope of better visibility on the mailing list.

I have this pet project of mine in which I'm testing the possibility of
integrating libuv's event loop cleanly with Qt.
After some research I come to conclusion that custom class based on
QAbstractEventDispatcher will perfect for this.

Some prototyping later and - give or take few bugs - it seems to be
somewhat working :]

Given lack of written examples on how things work on this level I'm not
quite sure about one thing.
Both methods - registerSocketNotifier() and unregisterSocketNotifier() -
get called very frequently on the same QSocketNotifier, with identical
QSocketNotifier::Type.
Example debug output looks like this:

[debug   ]       18:33:48.013
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.024
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.061
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.072
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.110
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.121
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.157
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.168
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.205
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.216
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.253
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.265
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.301
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.311
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.349
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.360
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.397
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.407
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.445
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.456
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.494
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.504
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.542
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.553
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.590
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.601
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.638
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.649
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.686
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.697
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.734
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.744
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.782
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.793
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.831
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.841
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.879
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.890
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.927
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.938
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.975
 LibUvEventDispatcher::registerSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)
[debug   ]       18:33:48.986
 LibUvEventDispatcher::unregisterSocketNotifier()
QSocketNotifier(0x1cb64fde5a0)

Which come close to 40Hz for both functions.
Is this ... normal? Have I done something wrong in my implementation of
custom EventDispatcher?
I'm testing this on Windows 10. My application uses QWebSocketServer.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20191228/c726e18e/attachment.html>


More information about the Interest mailing list