[{"id":24651,"web_url":"https://patchwork.libcamera.org/comment/24651/","msgid":"<20220818142639.7drsdibsw6rpua2m@uno.localdomain>","date":"2022-08-18T14:26:39","subject":"Re: [libcamera-devel] [PATCH v3 08/17] py: Use libcamera's Mutex\n\tclasses","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Tomi,\n\nOn Fri, Jul 01, 2022 at 11:45:12AM +0300, Tomi Valkeinen wrote:\n> Use libcamera's Mutex and MutexLocker instead of the std versions to get\n> thread safety annotations.\n>\n> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n\nI think this should be squashed as well!\n\n> ---\n>  src/py/libcamera/py_camera_manager.cpp | 4 ++--\n>  src/py/libcamera/py_camera_manager.h   | 7 ++++---\n>  2 files changed, 6 insertions(+), 5 deletions(-)\n>\n> diff --git a/src/py/libcamera/py_camera_manager.cpp b/src/py/libcamera/py_camera_manager.cpp\n> index 3d422c9e..5600f661 100644\n> --- a/src/py/libcamera/py_camera_manager.cpp\n> +++ b/src/py/libcamera/py_camera_manager.cpp\n> @@ -104,14 +104,14 @@ void PyCameraManager::readFd()\n>\n>  void PyCameraManager::pushRequest(Request *req)\n>  {\n> -\tstd::lock_guard guard(completedRequestsMutex_);\n> +\tMutexLocker guard(completedRequestsMutex_);\n>  \tcompletedRequests_.push_back(req);\n>  }\n>\n>  std::vector<Request *> PyCameraManager::getCompletedRequests()\n>  {\n>  \tstd::vector<Request *> v;\n> -\tstd::lock_guard guard(completedRequestsMutex_);\n> +\tMutexLocker guard(completedRequestsMutex_);\n>  \tswap(v, completedRequests_);\n>  \treturn v;\n>  }\n> diff --git a/src/py/libcamera/py_camera_manager.h b/src/py/libcamera/py_camera_manager.h\n> index 710163e8..56bea13d 100644\n> --- a/src/py/libcamera/py_camera_manager.h\n> +++ b/src/py/libcamera/py_camera_manager.h\n> @@ -5,7 +5,7 @@\n>\n>  #pragma once\n>\n> -#include <mutex>\n> +#include <libcamera/base/mutex.h>\n>\n>  #include <libcamera/libcamera.h>\n>\n> @@ -34,8 +34,9 @@ private:\n>  \tstd::unique_ptr<CameraManager> cameraManager_;\n>\n>  \tUniqueFD eventFd_;\n> -\tstd::mutex completedRequestsMutex_;\n> -\tstd::vector<Request *> completedRequests_;\n> +\tlibcamera::Mutex completedRequestsMutex_;\n> +\tstd::vector<Request *> completedRequests_\n> +\t\tLIBCAMERA_TSA_GUARDED_BY(completedRequestsMutex_);\n>\n>  \tvoid writeFd();\n>  \tvoid readFd();\n> --\n> 2.34.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 12551BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 18 Aug 2022 14:26:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D2F1D61FC0;\n\tThu, 18 Aug 2022 16:26:44 +0200 (CEST)","from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net\n\t[IPv6:2001:4b98:dc4:8::229])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4A10861FA7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Aug 2022 16:26:43 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id 0C0F6FF80D;\n\tThu, 18 Aug 2022 14:26:40 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660832804;\n\tbh=XE67u4Ud5W8CLWYl8OQWed6gKhwtbFsUwAIgMuyqF1A=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=3/AEaHR0dO73wI3NXCk6ceMzNAguDEQWC4hQCTV3oa+pMmhkC+9vpRn8DUByvgLLv\n\tVe0CfOvO8HmJTo9iIAy7/PdbSpyKkKKS1nKgX8jadFlVzZ+GZPPHNfrOnECGyT5xQw\n\tmOjXVs9mRtNWDQgw/9tx4AyDElUPHJJ12QV8EPE7PyJNZmBNAg6dtga22M74t9vBy5\n\tN1fnwterv339A6bdJ8eZeTIreaR6u9mAjWaYUXR1s+ALEFJCCFPk1Prs+iEefqaMfs\n\tHwkimEpn2TYt1SM+DCiDhHEcQeoNn4YcsDi5Pf55hmbKRVD5V5cPxmNnBD0TflELAG\n\t0o0Pk/wcJPy9g==","Date":"Thu, 18 Aug 2022 16:26:39 +0200","To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Message-ID":"<20220818142639.7drsdibsw6rpua2m@uno.localdomain>","References":"<20220701084521.31831-1-tomi.valkeinen@ideasonboard.com>\n\t<20220701084521.31831-9-tomi.valkeinen@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220701084521.31831-9-tomi.valkeinen@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 08/17] py: Use libcamera's Mutex\n\tclasses","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>","From":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24683,"web_url":"https://patchwork.libcamera.org/comment/24683/","msgid":"<Yv6RTwScKdU4hWf1@pendragon.ideasonboard.com>","date":"2022-08-18T19:21:51","subject":"Re: [libcamera-devel] [PATCH v3 08/17] py: Use libcamera's Mutex\n\tclasses","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Tomi,\n\nThank you for the patch.\n\nOn Fri, Jul 01, 2022 at 11:45:12AM +0300, Tomi Valkeinen wrote:\n> Use libcamera's Mutex and MutexLocker instead of the std versions to get\n> thread safety annotations.\n> \n> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n\nNote that due to a recent change that made the mutex.h header private,\nyou will need to use libcamera_private instead of libcamera_public in\npycamera_deps in meson.build.\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  src/py/libcamera/py_camera_manager.cpp | 4 ++--\n>  src/py/libcamera/py_camera_manager.h   | 7 ++++---\n>  2 files changed, 6 insertions(+), 5 deletions(-)\n> \n> diff --git a/src/py/libcamera/py_camera_manager.cpp b/src/py/libcamera/py_camera_manager.cpp\n> index 3d422c9e..5600f661 100644\n> --- a/src/py/libcamera/py_camera_manager.cpp\n> +++ b/src/py/libcamera/py_camera_manager.cpp\n> @@ -104,14 +104,14 @@ void PyCameraManager::readFd()\n>  \n>  void PyCameraManager::pushRequest(Request *req)\n>  {\n> -\tstd::lock_guard guard(completedRequestsMutex_);\n> +\tMutexLocker guard(completedRequestsMutex_);\n>  \tcompletedRequests_.push_back(req);\n>  }\n>  \n>  std::vector<Request *> PyCameraManager::getCompletedRequests()\n>  {\n>  \tstd::vector<Request *> v;\n> -\tstd::lock_guard guard(completedRequestsMutex_);\n> +\tMutexLocker guard(completedRequestsMutex_);\n>  \tswap(v, completedRequests_);\n>  \treturn v;\n>  }\n> diff --git a/src/py/libcamera/py_camera_manager.h b/src/py/libcamera/py_camera_manager.h\n> index 710163e8..56bea13d 100644\n> --- a/src/py/libcamera/py_camera_manager.h\n> +++ b/src/py/libcamera/py_camera_manager.h\n> @@ -5,7 +5,7 @@\n>  \n>  #pragma once\n>  \n> -#include <mutex>\n> +#include <libcamera/base/mutex.h>\n>  \n>  #include <libcamera/libcamera.h>\n>  \n> @@ -34,8 +34,9 @@ private:\n>  \tstd::unique_ptr<CameraManager> cameraManager_;\n>  \n>  \tUniqueFD eventFd_;\n> -\tstd::mutex completedRequestsMutex_;\n> -\tstd::vector<Request *> completedRequests_;\n> +\tlibcamera::Mutex completedRequestsMutex_;\n> +\tstd::vector<Request *> completedRequests_\n> +\t\tLIBCAMERA_TSA_GUARDED_BY(completedRequestsMutex_);\n>  \n>  \tvoid writeFd();\n>  \tvoid readFd();","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B0ED3C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 18 Aug 2022 19:21:58 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 46B5C61FC0;\n\tThu, 18 Aug 2022 21:21:57 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0C8CF61FA7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Aug 2022 21:21:55 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 475A98B;\n\tThu, 18 Aug 2022 21:21:54 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660850517;\n\tbh=YHyewKmBaz3ElrBPW9GHDMbUQ8cVcqQUhk6nGtiAmCE=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=Bd+cVsbMvRL0q1npKBQIU4yGZjjpubt4dSOhO9bEWkTtlV0eXFpVwKNGixX3IsDzh\n\tj1f9KiwMXKaIiRaPAMpsGN4lpZup9SDNMMNUtD3YE/Ir8yWpGylIVD+/vxkHoOC8oc\n\tnZD6G3ZXMKpwXnSOZmqAVySAlzihWBHsrGBI/y7byLuflN1NUjSlJ3XfigcMAkzCpk\n\tOjP6GqBTAco/EDsoKqPYOeEmBTAX/DXxUew4XdWAnMP3mLZfRwNUl3t3JvBHXK2h6k\n\tqsGq7I8H4//7vEPLh2gzihKoavcdHAJFsgnPelLv6xUyVPHwm10GR2Fg0Mbjnjk9CZ\n\t5vChJhfnYaD1g==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660850514;\n\tbh=YHyewKmBaz3ElrBPW9GHDMbUQ8cVcqQUhk6nGtiAmCE=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=hgYakyZCaqtuDqLNJIdA44eukQ3ivbu/dobcg7O+tXJTD/kqk7oz2Et8sLMm/tBxC\n\tVcZ4UwCG9rs1Cv/UvnwhoETcgZlNBpId8VhWxYF58cOfY1nOzQsZt/ERlwiUMPP3rj\n\tx3JWJ5FJnJ/AcbcKojELOcgdPNxr/e5ee0M+knuc="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"hgYakyZC\"; dkim-atps=neutral","Date":"Thu, 18 Aug 2022 22:21:51 +0300","To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Message-ID":"<Yv6RTwScKdU4hWf1@pendragon.ideasonboard.com>","References":"<20220701084521.31831-1-tomi.valkeinen@ideasonboard.com>\n\t<20220701084521.31831-9-tomi.valkeinen@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220701084521.31831-9-tomi.valkeinen@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 08/17] py: Use libcamera's Mutex\n\tclasses","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>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24701,"web_url":"https://patchwork.libcamera.org/comment/24701/","msgid":"<61a5f399-8bc8-89b4-e903-293e3f8c69e4@ideasonboard.com>","date":"2022-08-19T05:52:53","subject":"Re: [libcamera-devel] [PATCH v3 08/17] py: Use libcamera's Mutex\n\tclasses","submitter":{"id":109,"url":"https://patchwork.libcamera.org/api/people/109/","name":"Tomi Valkeinen","email":"tomi.valkeinen@ideasonboard.com"},"content":"On 18/08/2022 22:21, Laurent Pinchart wrote:\n> Hi Tomi,\n> \n> Thank you for the patch.\n> \n> On Fri, Jul 01, 2022 at 11:45:12AM +0300, Tomi Valkeinen wrote:\n>> Use libcamera's Mutex and MutexLocker instead of the std versions to get\n>> thread safety annotations.\n>>\n>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n> \n> Note that due to a recent change that made the mutex.h header private,\n> you will need to use libcamera_private instead of libcamera_public in\n> pycamera_deps in meson.build.\n\nHmm, compiles fine with today's upstream master without changing to \nlibcamera_private.\n\n  Tomi","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 8284EBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 19 Aug 2022 05:52:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B6F2261FC0;\n\tFri, 19 Aug 2022 07:52:58 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 35243603E2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 Aug 2022 07:52:57 +0200 (CEST)","from [192.168.1.111] (91-158-154-79.elisa-laajakaista.fi\n\t[91.158.154.79])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 51BB63F1;\n\tFri, 19 Aug 2022 07:52:56 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660888378;\n\tbh=nitShgPagwqiRsSdaduxmahPZr7ccGiaLQgppc96Ndw=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=Qklwaaz230uU/Cfkr+RjdpOpvCYVdljsohU3ykHQjrk1UtsoWItoDQh9prDNFQwZZ\n\t/95EqyOX9vf9/Va/0pAz+P8JIrVDXKuwK4fN83aklYifrvGqtyIx9WPHhwWnfLvKni\n\tGvtjD43sc1DenBKr6xFKt6nf0doQVgUdU3ike0YRAP4irLQAqJof23bhQBn9+szZJ+\n\tu8ThpKaVqzdhT+pSDoDuTqvE89zLLe1NxpHz1bIwV9En4+rXLjYPhE0E7LCjXhUJky\n\t2MLfnlXFBGcrhY7AioH97Oiy4YLF95MSyRR5gIOBXoxjooFCAzoDGXXJ/yU3R82sTm\n\tR1vrNgA6BNzvQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660888376;\n\tbh=nitShgPagwqiRsSdaduxmahPZr7ccGiaLQgppc96Ndw=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=DpqdJW7bSuiiegsfFlgUYsv4b0K4zBuP7eFyTplMmLcTaRHXHT4Vn+XKRcGt7WbDr\n\tXnfVERi6vJ7jB76JKglV7UFDTTtWasWNtXQEI5I3rTZYRnMM2Z+x5luUpf0kQUzPmC\n\tk4+UzmQhpEhUgFyuAptHEy/KKM8ur1MfNa3+OPk4="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"DpqdJW7b\"; dkim-atps=neutral","Message-ID":"<61a5f399-8bc8-89b4-e903-293e3f8c69e4@ideasonboard.com>","Date":"Fri, 19 Aug 2022 08:52:53 +0300","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-US","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20220701084521.31831-1-tomi.valkeinen@ideasonboard.com>\n\t<20220701084521.31831-9-tomi.valkeinen@ideasonboard.com>\n\t<Yv6RTwScKdU4hWf1@pendragon.ideasonboard.com>","In-Reply-To":"<Yv6RTwScKdU4hWf1@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v3 08/17] py: Use libcamera's Mutex\n\tclasses","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>","From":"Tomi Valkeinen via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24704,"web_url":"https://patchwork.libcamera.org/comment/24704/","msgid":"<fb49085d-2e31-57c5-194f-7c84941a5e35@ideasonboard.com>","date":"2022-08-19T06:20:25","subject":"Re: [libcamera-devel] [PATCH v3 08/17] py: Use libcamera's Mutex\n\tclasses","submitter":{"id":109,"url":"https://patchwork.libcamera.org/api/people/109/","name":"Tomi Valkeinen","email":"tomi.valkeinen@ideasonboard.com"},"content":"On 19/08/2022 08:52, Tomi Valkeinen wrote:\n> On 18/08/2022 22:21, Laurent Pinchart wrote:\n>> Hi Tomi,\n>>\n>> Thank you for the patch.\n>>\n>> On Fri, Jul 01, 2022 at 11:45:12AM +0300, Tomi Valkeinen wrote:\n>>> Use libcamera's Mutex and MutexLocker instead of the std versions to get\n>>> thread safety annotations.\n>>>\n>>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n>>\n>> Note that due to a recent change that made the mutex.h header private,\n>> you will need to use libcamera_private instead of libcamera_public in\n>> pycamera_deps in meson.build.\n> \n> Hmm, compiles fine with today's upstream master without changing to \n> libcamera_private.\n\nAh, we had \"'-DLIBCAMERA_BASE_PRIVATE'\" there. I'll drop that and switch \nto libcamera_private.\n\n  Tomi","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B1923BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 19 Aug 2022 06:20:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 365A761FC0;\n\tFri, 19 Aug 2022 08:20:29 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A4F4D603E2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 Aug 2022 08:20:28 +0200 (CEST)","from [192.168.1.111] (91-158-154-79.elisa-laajakaista.fi\n\t[91.158.154.79])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D3F5F3F1;\n\tFri, 19 Aug 2022 08:20:27 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660890029;\n\tbh=FBVOxw0Fn9zj77jxTvc+VBG1c6Fp8KFdjuUuLhhyLAs=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=LVFmpBM45gPElvHSOPYLpqTRib4Fl6eeKEW7QFH3U5AROb802j8+ZRgvWYfdWCe6i\n\t1ABhmTz4Ch1h4IH+/1da9w8+F/zQEN50IMwRIWccEagjsLdQiYLpD3JS9RDF0jCf5Y\n\tT+h438POgakqdQKWzxw3WEmDttcLO0qnBucFDM2qS24dRKCxyxd4/r1B4Xp8hiVZec\n\tnMPrzrxC2cn82hUbbzuLDNR0v3Phc5QntwpcL8jBB/Ao3OkMy35kHieUlpLVoiDXG0\n\tOe/E7gSRYW/cl3NYvgi2MBnlZvYrsuS5hnoKAvMV5AVngYCS+3MQoIY9qNxKbtIYa2\n\tVpmhRdfr5ITTQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660890028;\n\tbh=FBVOxw0Fn9zj77jxTvc+VBG1c6Fp8KFdjuUuLhhyLAs=;\n\th=Date:Subject:From:To:Cc:References:In-Reply-To:From;\n\tb=jMakZc5OMEThvBb8Rv2fz322CxdwdqBIPGj11VoDVs6OzMQZ9jPZ65bI/CDBFIcmx\n\tX/9cYH521kfLCqvVppPgQeazybIjUnfvwpjw3f/KQCU3yVrVDAashEZFR500mnSIUn\n\tPwCFhc/Cb3AuYBOur6JGH7W4UzbcRvEvPlJgFBl8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"jMakZc5O\"; dkim-atps=neutral","Message-ID":"<fb49085d-2e31-57c5-194f-7c84941a5e35@ideasonboard.com>","Date":"Fri, 19 Aug 2022 09:20:25 +0300","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-US","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20220701084521.31831-1-tomi.valkeinen@ideasonboard.com>\n\t<20220701084521.31831-9-tomi.valkeinen@ideasonboard.com>\n\t<Yv6RTwScKdU4hWf1@pendragon.ideasonboard.com>\n\t<61a5f399-8bc8-89b4-e903-293e3f8c69e4@ideasonboard.com>","In-Reply-To":"<61a5f399-8bc8-89b4-e903-293e3f8c69e4@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v3 08/17] py: Use libcamera's Mutex\n\tclasses","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>","From":"Tomi Valkeinen via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]