Patch Detail
Show a patch.
GET /api/patches/2040/?format=api
{ "id": 2040, "url": "https://patchwork.libcamera.org/api/patches/2040/?format=api", "web_url": "https://patchwork.libcamera.org/patch/2040/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20190927201641.813877-3-niklas.soderlund@ragnatech.se>", "date": "2019-09-27T20:16:41", "name": "[libcamera-devel,v2,2/2] qcam: Fix timers not emitting timeout signal", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "8c4718b38bcd9a320b42e81a06caa6896b98ff1b", "submitter": { "id": 5, "url": "https://patchwork.libcamera.org/api/people/5/?format=api", "name": "Niklas Söderlund", "email": "niklas.soderlund@ragnatech.se" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/2040/mbox/", "series": [ { "id": 509, "url": "https://patchwork.libcamera.org/api/series/509/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=509", "date": "2019-09-27T20:16:40", "name": "qcam: Fix issues in the Qt event dispatcher", "version": 2, "mbox": "https://patchwork.libcamera.org/series/509/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/2040/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/2040/checks/", "tags": {}, "headers": { "Return-Path": "<niklas.soderlund@ragnatech.se>", "Received": [ "from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net\n\t[195.74.38.228])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 337896165B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 27 Sep 2019 22:17:25 +0200 (CEST)", "from bismarck.berto.se (unknown [84.172.88.101])\n\tby bin-vsp-out-03.atm.binero.net (Halon) with ESMTPA\n\tid be73fba8-e163-11e9-837a-0050569116f7;\n\tFri, 27 Sep 2019 22:16:52 +0200 (CEST)" ], "X-Halon-ID": "be73fba8-e163-11e9-837a-0050569116f7", "Authorized-sender": "niklas@soderlund.pp.se", "From": "=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Fri, 27 Sep 2019 22:16:41 +0200", "Message-Id": "<20190927201641.813877-3-niklas.soderlund@ragnatech.se>", "X-Mailer": "git-send-email 2.23.0", "In-Reply-To": "<20190927201641.813877-1-niklas.soderlund@ragnatech.se>", "References": "<20190927201641.813877-1-niklas.soderlund@ragnatech.se>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v2 2/2] qcam: Fix timers not emitting\n\ttimeout signal", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "X-List-Received-Date": "Fri, 27 Sep 2019 20:17:25 -0000" }, "content": "The timer signal was never emitted in QtEventDispatcher::timerEvent(),\nthis results in timers not working as designed running under the Qt\nevent loop. Fix this by emitting the signal on timeout and stopping the\ntimer. By stopping the timer unregisterTimer() is called which handles\nthe cleanup.\n\nSigned-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n---\n src/qcam/qt_event_dispatcher.cpp | 7 ++++---\n 1 file changed, 4 insertions(+), 3 deletions(-)", "diff": "diff --git a/src/qcam/qt_event_dispatcher.cpp b/src/qcam/qt_event_dispatcher.cpp\nindex 98d2472c37856642..d7d1fed290851e6e 100644\n--- a/src/qcam/qt_event_dispatcher.cpp\n+++ b/src/qcam/qt_event_dispatcher.cpp\n@@ -131,9 +131,10 @@ void QtEventDispatcher::unregisterTimer(Timer *timer)\n void QtEventDispatcher::timerEvent(QTimerEvent *event)\n {\n \tauto it = timers_.find(event->timerId());\n-\ttimerIds_.erase(it->second);\n-\tkillTimer(it->first);\n-\ttimers_.erase(it);\n+\tTimer *timer = it->second;\n+\n+\ttimer->stop();\n+\ttimer->timeout.emit(timer);\n }\n \n void QtEventDispatcher::processEvents()\n", "prefixes": [ "libcamera-devel", "v2", "2/2" ] }