diff options
-rw-r--r-- | src/serialport/qserialport_unix.cpp | 6 | ||||
-rw-r--r-- | src/serialport/qserialport_win.cpp | 17 |
2 files changed, 16 insertions, 7 deletions
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp index 98d66224..48dd1966 100644 --- a/src/serialport/qserialport_unix.cpp +++ b/src/serialport/qserialport_unix.cpp @@ -231,14 +231,12 @@ void QSerialPortPrivate::close() #endif if (readNotifier) { - readNotifier->setEnabled(false); - readNotifier->deleteLater(); + delete readNotifier; readNotifier = Q_NULLPTR; } if (writeNotifier) { - writeNotifier->setEnabled(false); - writeNotifier->deleteLater(); + delete writeNotifier; writeNotifier = Q_NULLPTR; } diff --git a/src/serialport/qserialport_win.cpp b/src/serialport/qserialport_win.cpp index d3eda5f4..73f9bab0 100644 --- a/src/serialport/qserialport_win.cpp +++ b/src/serialport/qserialport_win.cpp @@ -153,9 +153,20 @@ void QSerialPortPrivate::close() if (!::CancelIo(handle)) setError(getSystemError()); - setReadNotificationEnabled(false); - setWriteNotificationEnabled(false); - setCommunicationNotificationEnabled(false); + if (communicationNotifier) { + delete communicationNotifier; + communicationNotifier = Q_NULLPTR; + } + + if (readCompletionNotifier) { + delete readCompletionNotifier; + readCompletionNotifier = Q_NULLPTR; + } + + if (writeCompletionNotifier) { + delete writeCompletionNotifier; + writeCompletionNotifier = Q_NULLPTR; + } readStarted = false; readBuffer.clear(); |