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 <s...@linux.intel.com
<mailto:s...@linux.intel.com>> 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>

        See also Bug 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.nel...@boundarydevices.com>>

    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

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>

          
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.nel...@boundarydevices.com>>
        +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>
        +
        +See also Bug 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.nel...@boundarydevices.com>>
        +---
        + 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.__openembedded.org
    <mailto:Openembedded-core@lists.openembedded.org>
    http://lists.openembedded.org/__mailman/listinfo/openembedded-__core
    <http://lists.openembedded.org/mailman/listinfo/openembedded-core>



_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to