summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/serialport/qserialport_unix.cpp6
-rw-r--r--src/serialport/qserialport_win.cpp17
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();