Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qt6-serialport for openSUSE:Factory checked in at 2022-09-15 22:59:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qt6-serialport (Old) and /work/SRC/openSUSE:Factory/.qt6-serialport.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt6-serialport" Thu Sep 15 22:59:34 2022 rev:8 rq:1003821 version:6.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/qt6-serialport/qt6-serialport.changes 2022-06-20 15:38:09.918937579 +0200 +++ /work/SRC/openSUSE:Factory/.qt6-serialport.new.2083/qt6-serialport.changes 2022-09-15 23:00:47.089485491 +0200 @@ -1,0 +2,6 @@ +Fri Sep 9 12:41:46 UTC 2022 - Christophe Giboudeaux <christo...@krop.fr> + +- Update to 6.3.2: + * https://www.qt.io/blog/qt-6.3.2-released + +------------------------------------------------------------------- Old: ---- qtserialport-everywhere-src-6.3.1.tar.xz New: ---- qtserialport-everywhere-src-6.3.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qt6-serialport.spec ++++++ --- /var/tmp/diff_new_pack.4xnXtB/_old 2022-09-15 23:00:48.057488224 +0200 +++ /var/tmp/diff_new_pack.4xnXtB/_new 2022-09-15 23:00:48.065488247 +0200 @@ -16,7 +16,7 @@ # -%define real_version 6.3.1 +%define real_version 6.3.2 %define short_version 6.3 %define tar_name qtserialport-everywhere-src %define tar_suffix %{nil} @@ -27,7 +27,7 @@ %endif # Name: qt6-serialport%{?pkg_suffix} -Version: 6.3.1 +Version: 6.3.2 Release: 0 Summary: Qt 6 SerialPort library License: LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later) ++++++ qtserialport-everywhere-src-6.3.1.tar.xz -> qtserialport-everywhere-src-6.3.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/.cmake.conf new/qtserialport-everywhere-src-6.3.2/.cmake.conf --- old/qtserialport-everywhere-src-6.3.1/.cmake.conf 2022-06-06 03:06:51.000000000 +0200 +++ new/qtserialport-everywhere-src-6.3.2/.cmake.conf 2022-09-06 09:27:29.000000000 +0200 @@ -1,2 +1,2 @@ -set(QT_REPO_MODULE_VERSION "6.3.1") +set(QT_REPO_MODULE_VERSION "6.3.2") set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/.tag new/qtserialport-everywhere-src-6.3.2/.tag --- old/qtserialport-everywhere-src-6.3.1/.tag 2022-06-06 03:06:51.000000000 +0200 +++ new/qtserialport-everywhere-src-6.3.2/.tag 2022-09-06 09:27:29.000000000 +0200 @@ -1 +1 @@ -51e896081c70c40bf2a02a8f4953e9b27b984bff +3cf0152472cb9286fcbc995f0f0bc34c444e9b43 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/dependencies.yaml new/qtserialport-everywhere-src-6.3.2/dependencies.yaml --- old/qtserialport-everywhere-src-6.3.1/dependencies.yaml 2022-06-06 03:06:51.000000000 +0200 +++ new/qtserialport-everywhere-src-6.3.2/dependencies.yaml 2022-09-06 09:27:29.000000000 +0200 @@ -1,4 +1,4 @@ dependencies: ../qtbase: - ref: 8483dcde90f40cdfd0a0ec4245b03610b46b6cae + ref: 12dc1dc09d73f5400e1e77181749793885ed9ffc required: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.1/QtSerialPort/private/qserialport_p.h new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.1/QtSerialPort/private/qserialport_p.h --- old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.1/QtSerialPort/private/qserialport_p.h 2022-06-06 03:06:51.000000000 +0200 +++ new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.1/QtSerialPort/private/qserialport_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/serialport/qserialport_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.1/QtSerialPort/private/qserialportinfo_p.h new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.1/QtSerialPort/private/qserialportinfo_p.h --- old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.1/QtSerialPort/private/qserialportinfo_p.h 2022-06-06 03:06:51.000000000 +0200 +++ new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.1/QtSerialPort/private/qserialportinfo_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/serialport/qserialportinfo_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.1/QtSerialPort/private/qtudev_p.h new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.1/QtSerialPort/private/qtudev_p.h --- old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.1/QtSerialPort/private/qtudev_p.h 2022-06-06 03:06:51.000000000 +0200 +++ new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.1/QtSerialPort/private/qtudev_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/serialport/qtudev_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.1/QtSerialPort/private/qwinoverlappedionotifier_p.h new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.1/QtSerialPort/private/qwinoverlappedionotifier_p.h --- old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.1/QtSerialPort/private/qwinoverlappedionotifier_p.h 2022-06-06 03:06:51.000000000 +0200 +++ new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.1/QtSerialPort/private/qwinoverlappedionotifier_p.h 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -#include "../../../../../src/serialport/qwinoverlappedionotifier_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.2/QtSerialPort/private/qserialport_p.h new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.2/QtSerialPort/private/qserialport_p.h --- old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.2/QtSerialPort/private/qserialport_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.2/QtSerialPort/private/qserialport_p.h 2022-09-06 09:27:29.000000000 +0200 @@ -0,0 +1 @@ +#include "../../../../../src/serialport/qserialport_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.2/QtSerialPort/private/qserialportinfo_p.h new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.2/QtSerialPort/private/qserialportinfo_p.h --- old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.2/QtSerialPort/private/qserialportinfo_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.2/QtSerialPort/private/qserialportinfo_p.h 2022-09-06 09:27:29.000000000 +0200 @@ -0,0 +1 @@ +#include "../../../../../src/serialport/qserialportinfo_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.2/QtSerialPort/private/qtudev_p.h new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.2/QtSerialPort/private/qtudev_p.h --- old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.2/QtSerialPort/private/qtudev_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.2/QtSerialPort/private/qtudev_p.h 2022-09-06 09:27:29.000000000 +0200 @@ -0,0 +1 @@ +#include "../../../../../src/serialport/qtudev_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.2/QtSerialPort/private/qwinoverlappedionotifier_p.h new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.2/QtSerialPort/private/qwinoverlappedionotifier_p.h --- old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/6.3.2/QtSerialPort/private/qwinoverlappedionotifier_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/6.3.2/QtSerialPort/private/qwinoverlappedionotifier_p.h 2022-09-06 09:27:29.000000000 +0200 @@ -0,0 +1 @@ +#include "../../../../../src/serialport/qwinoverlappedionotifier_p.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/qtserialportversion.h new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/qtserialportversion.h --- old/qtserialport-everywhere-src-6.3.1/include/QtSerialPort/qtserialportversion.h 2022-06-09 02:14:40.000000000 +0200 +++ new/qtserialport-everywhere-src-6.3.2/include/QtSerialPort/qtserialportversion.h 2022-09-07 17:20:15.000000000 +0200 @@ -2,8 +2,8 @@ #ifndef QT_QTSERIALPORT_VERSION_H #define QT_QTSERIALPORT_VERSION_H -#define QTSERIALPORT_VERSION_STR "6.3.1" +#define QTSERIALPORT_VERSION_STR "6.3.2" -#define QTSERIALPORT_VERSION 0x060301 +#define QTSERIALPORT_VERSION 0x060302 #endif // QT_QTSERIALPORT_VERSION_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtserialport-everywhere-src-6.3.1/src/serialport/qwinoverlappedionotifier.cpp new/qtserialport-everywhere-src-6.3.2/src/serialport/qwinoverlappedionotifier.cpp --- old/qtserialport-everywhere-src-6.3.1/src/serialport/qwinoverlappedionotifier.cpp 2022-06-06 03:06:51.000000000 +0200 +++ new/qtserialport-everywhere-src-6.3.2/src/serialport/qwinoverlappedionotifier.cpp 2022-09-06 09:27:29.000000000 +0200 @@ -129,6 +129,7 @@ HANDLE hSemaphore = nullptr; HANDLE hResultsMutex = nullptr; QAtomicInt waiting; + QAtomicInt signalSent; QQueue<IOResult> results; }; @@ -397,14 +398,34 @@ results.enqueue(IOResult(numberOfBytes, errorCode, overlapped)); ReleaseMutex(hResultsMutex); ReleaseSemaphore(hSemaphore, 1, NULL); - if (!waiting) + // Do not send a signal if we didn't process the previous one. + // This is done to prevent soft memory leaks when working in a completely + // synchronous way. + if (!waiting && !signalSent.loadAcquire()) { + signalSent.storeRelease(1); emit q->_q_notify(); + } } void QWinOverlappedIoNotifierPrivate::_q_notified() { - if (WaitForSingleObject(hSemaphore, 0) == WAIT_OBJECT_0) - dispatchNextIoResult(); + Q_Q(QWinOverlappedIoNotifier); + signalSent.storeRelease(0); // signal processed - ready for a new one + if (WaitForSingleObject(hSemaphore, 0) == WAIT_OBJECT_0) { + // As we do not queue signals anymore, we need to process the whole + // queue at once. + WaitForSingleObject(hResultsMutex, INFINITE); + QQueue<IOResult> values; + results.swap(values); + ReleaseMutex(hResultsMutex); + // 'q' can go out of scope if the user decides to close the serial port + // while processing some answer. So we need to guard against that. + QPointer<QWinOverlappedIoNotifier> qptr(q); + while (!values.empty() && qptr) { + IOResult ioresult = values.dequeue(); + emit qptr->notified(ioresult.numberOfBytes, ioresult.errorCode, ioresult.overlapped); + } + } } OVERLAPPED *QWinOverlappedIoNotifierPrivate::dispatchNextIoResult()