Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH] recipes-qt: add fix for QWSLock on qt4e
@ 2013-08-24 16:49 Eric Nelson
  2013-08-24 19:13 ` Saul Wold
  0 siblings, 1 reply; 7+ messages in thread
From: Eric Nelson @ 2013-08-24 16:49 UTC (permalink / raw)
  To: openembedded-core

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

See also Bug 31254:
https://bugreports.qt-project.org/browse/QTBUG-31254

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
---
 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
            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 9af565935d16ecf8a8c04b5ea850ddb34a7c1294 Mon Sep 17 00:00:00 2001
+From: Eric Nelson <eric.nelson@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
+
+See also Bug 31254:
+	https://bugreports.qt-project.org/browse/QTBUG-31254
+
+Signed-off-by: Eric Nelson <eric.nelson@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
+
-- 
1.8.1.2



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] recipes-qt: add fix for QWSLock on qt4e
  2013-08-24 16:49 [PATCH] recipes-qt: add fix for QWSLock on qt4e Eric Nelson
@ 2013-08-24 19:13 ` Saul Wold
  2013-08-24 19:15   ` Laszlo Papp
  0 siblings, 1 reply; 7+ messages in thread
From: Saul Wold @ 2013-08-24 19:13 UTC (permalink / raw)
  To: Eric Nelson; +Cc: openembedded-core

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
>
> See also Bug 31254:
> https://bugreports.qt-project.org/browse/QTBUG-31254
>
> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Besides this, we need an Upstream-Status: Tag, this is either a Backport 
or Submitted maybe?

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
>              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 9af565935d16ecf8a8c04b5ea850ddb34a7c1294 Mon Sep 17 00:00:00 2001
> +From: Eric Nelson <eric.nelson@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
> +
> +See also Bug 31254:
> +	https://bugreports.qt-project.org/browse/QTBUG-31254
> +
> +Signed-off-by: Eric Nelson <eric.nelson@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
> +
>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] recipes-qt: add fix for QWSLock on qt4e
  2013-08-24 19:13 ` Saul Wold
@ 2013-08-24 19:15   ` Laszlo Papp
  2013-08-24 19:25     ` Eric Nelson
  0 siblings, 1 reply; 7+ messages in thread
From: Laszlo Papp @ 2013-08-24 19:15 UTC (permalink / raw)
  To: Saul Wold; +Cc: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 5795 bytes --]

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.


On Sat, Aug 24, 2013 at 8:13 PM, Saul Wold <sgw@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<eric.nelson@boundarydevices.com>
>> >
>>
> Besides this, we need an Upstream-Status: Tag, this is either a Backport
> or Submitted maybe?
>
> 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<eric.nelson@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<eric.nelson@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<Openembedded-core@lists.openembedded.org>
> http://lists.openembedded.org/**mailman/listinfo/openembedded-**core<http://lists.openembedded.org/mailman/listinfo/openembedded-core>
>

[-- Attachment #2: Type: text/html, Size: 7077 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] recipes-qt: add fix for QWSLock on qt4e
  2013-08-24 19:15   ` Laszlo Papp
@ 2013-08-24 19:25     ` Eric Nelson
  2013-08-24 19:28       ` Laszlo Papp
  0 siblings, 1 reply; 7+ messages in thread
From: Eric Nelson @ 2013-08-24 19:25 UTC (permalink / raw)
  To: Laszlo Papp; +Cc: openembedded-core

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



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] recipes-qt: add fix for QWSLock on qt4e
  2013-08-24 19:25     ` Eric Nelson
@ 2013-08-24 19:28       ` Laszlo Papp
  2013-08-24 19:51         ` Eric Nelson
  0 siblings, 1 reply; 7+ messages in thread
From: Laszlo Papp @ 2013-08-24 19:28 UTC (permalink / raw)
  To: Eric Nelson; +Cc: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 8857 bytes --]

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 <
eric.nelson@boundarydevices.com> 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 <sgw@linux.intel.com
>> <mailto:sgw@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>
>>
>>         <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<eric.nelson@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<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<eric.nelson@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>
>>
>>         <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<eric.nelson@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.__open**embedded.org<http://openembedded.org>
>>     <mailto:Openembedded-core@**lists.openembedded.org<Openembedded-core@lists.openembedded.org>
>> >
>>     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>
>> >
>>
>>
>>
>

[-- Attachment #2: Type: text/html, Size: 11049 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] recipes-qt: add fix for QWSLock on qt4e
  2013-08-24 19:28       ` Laszlo Papp
@ 2013-08-24 19:51         ` Eric Nelson
  2013-08-24 19:56           ` Laszlo Papp
  0 siblings, 1 reply; 7+ messages in thread
From: Eric Nelson @ 2013-08-24 19:51 UTC (permalink / raw)
  To: Laszlo Papp; +Cc: openembedded-core

Thanks Laszlo,

On 08/24/2013 12:28 PM, Laszlo Papp wrote:
> 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.
>

I just posted to development@qt-project.org. Is that the right place?



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] recipes-qt: add fix for QWSLock on qt4e
  2013-08-24 19:51         ` Eric Nelson
@ 2013-08-24 19:56           ` Laszlo Papp
  0 siblings, 0 replies; 7+ messages in thread
From: Laszlo Papp @ 2013-08-24 19:56 UTC (permalink / raw)
  To: Eric Nelson; +Cc: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 510 bytes --]

I replied in there.


On Sat, Aug 24, 2013 at 8:51 PM, Eric Nelson <
eric.nelson@boundarydevices.com> wrote:

> Thanks Laszlo,
>
>
> On 08/24/2013 12:28 PM, Laszlo Papp wrote:
>
>> 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.
>>
>>
> I just posted to development@qt-project.org. Is that the right place?
>
>

[-- Attachment #2: Type: text/html, Size: 1030 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-08-24 19:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-24 16:49 [PATCH] recipes-qt: add fix for QWSLock on qt4e Eric Nelson
2013-08-24 19:13 ` Saul Wold
2013-08-24 19:15   ` Laszlo Papp
2013-08-24 19:25     ` Eric Nelson
2013-08-24 19:28       ` Laszlo Papp
2013-08-24 19:51         ` Eric Nelson
2013-08-24 19:56           ` Laszlo Papp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox