diff options
author | Joerg Bornemann <joerg.bornemann@theqtcompany.com> | 2016-03-15 10:59:59 +0100 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@theqtcompany.com> | 2016-03-17 16:52:00 +0000 |
commit | 5c89e2eeeed3c58e8068ddfca0cddcc801c2e30a (patch) | |
tree | 7b1343c1e3ce330abf2d973352ee8e966ce1f7f9 /src/network/socket | |
parent | 461ebedb98c986c047a68e98cb9cc3c212d5d315 (diff) |
Rework QWindowsPipeReader
The use of QWinOverlappedIoNotifier in QWindowsPipeReader restricts us
in the following ways:
- The handle that gets assigned to QWinOverlappedIoNotifier is forever
tied to an I/O completion port.
- Other notification mechanisms like I/O completion routines of
WriteFileEx do not work with such a handle.
- No other QWinOverlappedIoNotifier can be registered for this handle.
To achieve the ultimate goal of making QWindowsPipeWriter thread-free
(to fix QTBUG-23378 and QTBUG-38185) we remove the usage of
QWinOverlappedIoNotifier from QWindowsPipeReader and use the
ReadFileEx API instead.
This has the additional advantage of removing the need for any thread
synchronization, as the I/O completion routine runs in the thread that
ReadFileEx was called on, leading to simpler and faster code.
Change-Id: I05c983e1f1e49d7dd27e3b77a47f87cae9c3f4c6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'src/network/socket')
0 files changed, 0 insertions, 0 deletions