Well, you should ask upstream about it... maybe it ended up in a decision it is the wrong way, and something better went in, or being planned to go in. I think a change should not be integrated like this in grey area.
On Sat, Aug 24, 2013 at 8:25 PM, Eric Nelson < [email protected]> wrote: > Hi Laszlo, > > > On 08/24/2013 12:15 PM, Laszlo Papp wrote: > >> This is strange. According to the bugtracker it should be in 4.8.5 >> already... and the recipe seems to be about 4.8.5. It needs more >> investigation. >> >> > I saw this, but there's no evidence that any change was committed > and I verified that the bug is still there (it's trivially easy to > reproduce) and that this patch fixes it. > > >> On Sat, Aug 24, 2013 at 8:13 PM, Saul Wold <[email protected] >> <mailto:[email protected]>> wrote: >> >> On 08/24/2013 09:49 AM, Eric Nelson wrote: >> >> This patch adds a patch for Qt-Embedded to only >> destroy semaphores in the process which created >> them. >> >> Original patch by Neil Jerram for the OpenMoko project: >> http://lists.openmoko.org/__**pipermail/community/2012-__** >> November/067806.html<http://lists.openmoko.org/__pipermail/community/2012-__November/067806.html> >> >> <http://lists.openmoko.org/**pipermail/community/2012-** >> November/067806.html<http://lists.openmoko.org/pipermail/community/2012-November/067806.html> >> > >> >> See also Bug 31254: >> https://bugreports.qt-project.**__org/browse/QTBUG-31254 >> >> <https://bugreports.qt-**project.org/browse/QTBUG-31254<https://bugreports.qt-project.org/browse/QTBUG-31254> >> **> >> >> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices._**_com >> >> <mailto:eric.nelson@**boundarydevices.com<[email protected]> >> >> >> >> >> Besides this, we need an Upstream-Status: Tag, this is either a >> Backport or Submitted maybe? >> >> > I submitted a patch, but haven't received any feedback from the Qt'ers: > > https://codereview.qt-project.**org/#change,62842<https://codereview.qt-project.org/#change,62842> > > Should I re-send with Upstream-Status: tag and a reference? > > Sau! >> >> >> --- >> meta/recipes-qt/qt4/qt4-4.8.5.**__inc | 1 + >> ...-Only-destroy-semaphores-__**in-process-owner.patch | 77 >> >> ++++++++++++++++++++++ >> 2 files changed, 78 insertions(+) >> create mode 100644 >> meta/recipes-qt/qt4/qt4-4.8.5/**__0028-QWSLock-Only-destroy-__** >> semaphores-in-process-owner.__**patch >> >> diff --git a/meta/recipes-qt/qt4/qt4-4.8.**__5.inc >> b/meta/recipes-qt/qt4/qt4-4.8.**__5.inc >> index 95a14f3..be16bff 100644 >> --- a/meta/recipes-qt/qt4/qt4-4.8.**__5.inc >> +++ b/meta/recipes-qt/qt4/qt4-4.8.**__5.inc >> >> @@ -24,6 +24,7 @@ SRC_URI = >> "http://download.qt-project.__**org/official_releases/qt/4.8/$** >> __{PV}/qt-ever >> <http://download.qt-project.**org/official_releases/qt/4.8/$** >> %7BPV%7D/qt-ever<http://download.qt-project.org/official_releases/qt/4.8/$%7BPV%7D/qt-ever> >> > >> >> file://0022-Fix-drawing-of-0-_**_width-polylines-from-outside-* >> *__the-de.patch \ >> >> >> file://0023-QHttpMultiPart-__**fix-data-corruption-in-__**readData-metho.patch >> \ >> >> file://0027-tools.pro-disable-**__qmeegographicssystemhelper._* >> *_patch \ >> + >> file://0028-QWSLock-Only-__**destroy-semaphores-in-process-** >> __owner.patch >> >> \ >> file://g++.conf \ >> file://linux.conf \ >> " >> diff --git >> a/meta/recipes-qt/qt4/qt4-4.8.**__5/0028-QWSLock-Only-destroy-** >> __semaphores-in-process-owner.**__patch >> b/meta/recipes-qt/qt4/qt4-4.8.**__5/0028-QWSLock-Only-destroy-** >> __semaphores-in-process-owner.**__patch >> >> new file mode 100644 >> index 0000000..d67a746 >> --- /dev/null >> +++ >> b/meta/recipes-qt/qt4/qt4-4.8.**__5/0028-QWSLock-Only-destroy-** >> __semaphores-in-process-owner.**__patch >> @@ -0,0 +1,77 @@ >> +From 9af565935d16ecf8a8c04b5ea850dd**__b34a7c1294 Mon Sep 17 >> 00:00:00 2001 >> +From: Eric Nelson <eric.nelson@boundarydevices._**_com >> >> <mailto:eric.nelson@**boundarydevices.com<[email protected]> >> >> >> >> +Date: Mon, 12 Aug 2013 11:54:05 -0700 >> +Subject: [PATCH] QWSLock: Only destroy semaphores in process >> owner >> + >> +This fixes the case when QT_POSIX_IPC is not defined. >> + >> +Original patch by Neil Jerram for the OpenMoko project: >> + >> http://lists.openmoko.org/__**pipermail/community/2012-__** >> November/067806.html<http://lists.openmoko.org/__pipermail/community/2012-__November/067806.html> >> >> <http://lists.openmoko.org/**pipermail/community/2012-** >> November/067806.html<http://lists.openmoko.org/pipermail/community/2012-November/067806.html> >> > >> + >> +See also Bug 31254: >> + https://bugreports.qt-project.**__org/browse/QTBUG-31254 >> >> <https://bugreports.qt-**project.org/browse/QTBUG-31254<https://bugreports.qt-project.org/browse/QTBUG-31254> >> **> >> + >> +Signed-off-by: Eric Nelson <eric.nelson@boundarydevices._**_com >> >> <mailto:eric.nelson@**boundarydevices.com<[email protected]> >> >> >> >> +--- >> + src/gui/embedded/qwslock.cpp | 13 +++++++++---- >> + src/gui/embedded/qwslock_p.h | 2 +- >> + 2 files changed, 10 insertions(+), 5 deletions(-) >> + >> +diff --git a/src/gui/embedded/qwslock.cpp >> b/src/gui/embedded/qwslock.cpp >> +index 3f8f306..cd6a48d 100644 >> +--- a/src/gui/embedded/qwslock.cpp >> ++++ b/src/gui/embedded/qwslock.cpp >> +@@ -83,9 +83,12 @@ QWSLock::QWSLock(int id) : semId(id) >> + QWSSignalHandler::instance()->**__addWSLock(this); >> >> + #endif >> + >> ++ owned = false; >> ++ >> + #ifndef QT_POSIX_IPC >> + if (semId == -1) { >> + semId = semget(IPC_PRIVATE, 3, IPC_CREAT | 0666); >> ++ owned = true; >> + if (semId == -1) { >> + perror("QWSLock::QWSLock"); >> + qFatal("Unable to create semaphore"); >> +@@ -100,7 +103,6 @@ QWSLock::QWSLock(int id) : semId(id) >> + } >> + #else >> + sems[0] = sems[1] = sems[2] = SEM_FAILED; >> +- owned = false; >> + >> + if (semId == -1) { >> + // ### generate really unique IDs >> +@@ -134,9 +136,12 @@ QWSLock::~QWSLock() >> + >> + if (semId != -1) { >> + #ifndef QT_POSIX_IPC >> +- qt_semun semval; >> +- semval.val = 0; >> +- semctl(semId, 0, IPC_RMID, semval); >> ++ >> ++ if (owned) { >> ++ qt_semun semval; >> ++ semval.val = 0; >> ++ semctl(semId, 0, IPC_RMID, semval); >> ++ } >> + semId = -1; >> + #else >> + // emulate the SEM_UNDO behavior for the BackingStore >> lock >> +diff --git a/src/gui/embedded/qwslock_p.h >> b/src/gui/embedded/qwslock_p.h >> +index ead7b89..d16b3d5 100644 >> +--- a/src/gui/embedded/qwslock_p.h >> ++++ b/src/gui/embedded/qwslock_p.h >> +@@ -86,8 +86,8 @@ private: >> + int lockCount[2]; >> + #ifdef QT_POSIX_IPC >> + sem_t *sems[3]; >> +- bool owned; >> + #endif >> ++ bool owned; >> + }; >> + >> + QT_END_NAMESPACE >> +-- >> +1.8.1.2 >> + >> >> ______________________________**___________________ >> Openembedded-core mailing list >> Openembedded-core@lists.__open**embedded.org<http://openembedded.org> >> >> <mailto:Openembedded-core@**lists.openembedded.org<[email protected]> >> > >> http://lists.openembedded.org/**__mailman/listinfo/** >> openembedded-__core<http://lists.openembedded.org/__mailman/listinfo/openembedded-__core> >> >> <http://lists.openembedded.**org/mailman/listinfo/**openembedded-core<http://lists.openembedded.org/mailman/listinfo/openembedded-core> >> > >> >> >> >
_______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
