[{"id":35432,"web_url":"https://patchwork.libcamera.org/comment/35432/","msgid":"<20250815103620.GK6201@pendragon.ideasonboard.com>","date":"2025-08-15T10:36:20","subject":"Re: [PATCH v1] libcamera: base: thread: eventDispatcher(): Not\n\tthread safe","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Barnabás,\n\nThank you for the patch.\n\nOn Fri, Aug 15, 2025 at 12:21:39PM +0200, Barnabás Pőcze wrote:\n> The function is not actually thread safe contrary to its documentation.\n> Since it is currently not used in an unsafe context, simply remove the\n> mention of thread safety from the documentation.\n> \n> The variable must still remain atomic because it is accessed internally\n> from different threads, e.g. `Thread::postMessage()`.\n> \n> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> ---\n>  src/libcamera/base/thread.cpp | 2 --\n>  1 file changed, 2 deletions(-)\n> \n> diff --git a/src/libcamera/base/thread.cpp b/src/libcamera/base/thread.cpp\n> index d8fe0d697..d7b9b2e6f 100644\n> --- a/src/libcamera/base/thread.cpp\n> +++ b/src/libcamera/base/thread.cpp\n> @@ -512,8 +512,6 @@ pid_t Thread::currentId()\n>   * This function retrieves the internal event dispatcher for the thread. The\n>   * returned event dispatcher is valid until the thread is destroyed.\n>   *\n> - * \\context This function is \\threadsafe.\n> - *\n\nCould you please also add a\n\n\tASSERT(data_ == ThreadData::current());\n\nto the implementation, to avoid future issues ? With that,\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n>   * \\return Pointer to the event dispatcher\n>   */\n>  EventDispatcher *Thread::eventDispatcher()","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 18774BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 15 Aug 2025 10:36:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B5D1E6924E;\n\tFri, 15 Aug 2025 12:36:42 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DBF5F61443\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 Aug 2025 12:36:40 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id DA8BD56D;\n\tFri, 15 Aug 2025 12:35:45 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"sY+ZNyGi\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1755254146;\n\tbh=7oOlC1gfz762kRgQO4rmjhhy0YP8plvkh3VyuNY/hok=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=sY+ZNyGi5O1sIacX85WIAi/UpWqYpbhi9hcl1f+1jXpyJZbz68E5Cjf8gg0qOa+UM\n\tqsfp5gIZW5ZR/SUwIPkFoXJnKObkdyvOmZMMdLJg7FQARJow+nOOurKXZFGv8IggBS\n\tITa0pAPywHUf/AKBdAK7AnqPognyCcHCqTM3w9EM=","Date":"Fri, 15 Aug 2025 13:36:20 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v1] libcamera: base: thread: eventDispatcher(): Not\n\tthread safe","Message-ID":"<20250815103620.GK6201@pendragon.ideasonboard.com>","References":"<20250815102139.2200196-1-barnabas.pocze@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20250815102139.2200196-1-barnabas.pocze@ideasonboard.com>","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":35435,"web_url":"https://patchwork.libcamera.org/comment/35435/","msgid":"<a2d627f4-7d25-4d73-a928-7af904d38325@ideasonboard.com>","date":"2025-08-15T10:46:20","subject":"Re: [PATCH v1] libcamera: base: thread: eventDispatcher(): Not\n\tthread safe","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2025. 08. 15. 12:36 keltezéssel, Laurent Pinchart írta:\n> Hi Barnabás,\n> \n> Thank you for the patch.\n> \n> On Fri, Aug 15, 2025 at 12:21:39PM +0200, Barnabás Pőcze wrote:\n>> The function is not actually thread safe contrary to its documentation.\n>> Since it is currently not used in an unsafe context, simply remove the\n>> mention of thread safety from the documentation.\n>>\n>> The variable must still remain atomic because it is accessed internally\n>> from different threads, e.g. `Thread::postMessage()`.\n>>\n>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n>> ---\n>>   src/libcamera/base/thread.cpp | 2 --\n>>   1 file changed, 2 deletions(-)\n>>\n>> diff --git a/src/libcamera/base/thread.cpp b/src/libcamera/base/thread.cpp\n>> index d8fe0d697..d7b9b2e6f 100644\n>> --- a/src/libcamera/base/thread.cpp\n>> +++ b/src/libcamera/base/thread.cpp\n>> @@ -512,8 +512,6 @@ pid_t Thread::currentId()\n>>    * This function retrieves the internal event dispatcher for the thread. The\n>>    * returned event dispatcher is valid until the thread is destroyed.\n>>    *\n>> - * \\context This function is \\threadsafe.\n>> - *\n> \n> Could you please also add a\n> \n> \tASSERT(data_ == ThreadData::current());\n> \n> to the implementation, to avoid future issues ? With that,\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nOkay, done. I'll defer sending a new version unless other significant changes\nare needed.\n\n\n> \n>>    * \\return Pointer to the event dispatcher\n>>    */\n>>   EventDispatcher *Thread::eventDispatcher()\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 8CB4ABDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 15 Aug 2025 10:46:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4C2426925A;\n\tFri, 15 Aug 2025 12:46:27 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BBBD66924E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 Aug 2025 12:46:25 +0200 (CEST)","from [192.168.33.21] (185.221.141.188.nat.pool.zt.hu\n\t[185.221.141.188])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 224AA56D;\n\tFri, 15 Aug 2025 12:45:30 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Xi22W7Hx\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1755254730;\n\tbh=jcY9eqDCh6yOC0DbsqH8rYwU6xrjlSOTCigxH02cPF8=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=Xi22W7HxAHZZ/V141gKwYsz++0mb1IWEnOxRscp7wsLFSd2rBwRn+NbeW8e54Fx9U\n\timXCIKBSlhQaw7wlBcZBMRCkLrs0Ge+7GrSXWZbZJBogpmim+ScHHbT2PVZzvqdfHE\n\t8GO34MS7Pf6v4th6JWYfRoGwiI1uEA56/qI5Rz+Q=","Message-ID":"<a2d627f4-7d25-4d73-a928-7af904d38325@ideasonboard.com>","Date":"Fri, 15 Aug 2025 12:46:20 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v1] libcamera: base: thread: eventDispatcher(): Not\n\tthread safe","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20250815102139.2200196-1-barnabas.pocze@ideasonboard.com>\n\t<20250815103620.GK6201@pendragon.ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20250815103620.GK6201@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":35481,"web_url":"https://patchwork.libcamera.org/comment/35481/","msgid":"<175551729998.560048.2050083166790964526@ping.linuxembedded.co.uk>","date":"2025-08-18T11:41:39","subject":"Re: [PATCH v1] libcamera: base: thread: eventDispatcher(): Not\n\tthread safe","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Barnabás Pőcze (2025-08-15 11:46:20)\n> 2025. 08. 15. 12:36 keltezéssel, Laurent Pinchart írta:\n> > Hi Barnabás,\n> > \n> > Thank you for the patch.\n> > \n> > On Fri, Aug 15, 2025 at 12:21:39PM +0200, Barnabás Pőcze wrote:\n> >> The function is not actually thread safe contrary to its documentation.\n> >> Since it is currently not used in an unsafe context, simply remove the\n> >> mention of thread safety from the documentation.\n> >>\n> >> The variable must still remain atomic because it is accessed internally\n> >> from different threads, e.g. `Thread::postMessage()`.\n> >>\n> >> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> >> ---\n> >>   src/libcamera/base/thread.cpp | 2 --\n> >>   1 file changed, 2 deletions(-)\n> >>\n> >> diff --git a/src/libcamera/base/thread.cpp b/src/libcamera/base/thread.cpp\n> >> index d8fe0d697..d7b9b2e6f 100644\n> >> --- a/src/libcamera/base/thread.cpp\n> >> +++ b/src/libcamera/base/thread.cpp\n> >> @@ -512,8 +512,6 @@ pid_t Thread::currentId()\n> >>    * This function retrieves the internal event dispatcher for the thread. The\n> >>    * returned event dispatcher is valid until the thread is destroyed.\n> >>    *\n> >> - * \\context This function is \\threadsafe.\n> >> - *\n> > \n> > Could you please also add a\n> > \n> >       ASSERT(data_ == ThreadData::current());\n> > \n> > to the implementation, to avoid future issues ? With that,\n> > \n> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n> Okay, done. I'll defer sending a new version unless other significant changes\n> are needed.\n\nAdding the assertion is fine with me too as long as CI passes.\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> \n> \n> > \n> >>    * \\return Pointer to the event dispatcher\n> >>    */\n> >>   EventDispatcher *Thread::eventDispatcher()\n> > \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 53C66BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 18 Aug 2025 11:41:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1CD3369259;\n\tMon, 18 Aug 2025 13:41:45 +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 65CEB69257\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 18 Aug 2025 13:41:43 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4BEC217D1;\n\tMon, 18 Aug 2025 13:40:46 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"dD3gjv+j\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1755517246;\n\tbh=Eh+HWM0gL/HLzWS+Psx6bhBQAWzt8+OgJjQ/DpDZlDI=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=dD3gjv+jWd6Q9EBuM73Qr3ZrJQhB6mM88MGsbM599KKQoMtwQQMDMxmIZC7MtjLZx\n\toND0oddRL1hwFflbJCLHQlsy5DfxpUfLbGWaLQNi1d2ExKhSDly9O1Ffqb+svwPXQb\n\tSm8nR3bWFt/kEThauOsFFtwTLlH4XeBZJ0vf8txY=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<a2d627f4-7d25-4d73-a928-7af904d38325@ideasonboard.com>","References":"<20250815102139.2200196-1-barnabas.pocze@ideasonboard.com>\n\t<20250815103620.GK6201@pendragon.ideasonboard.com>\n\t<a2d627f4-7d25-4d73-a928-7af904d38325@ideasonboard.com>","Subject":"Re: [PATCH v1] libcamera: base: thread: eventDispatcher(): Not\n\tthread safe","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","Date":"Mon, 18 Aug 2025 12:41:39 +0100","Message-ID":"<175551729998.560048.2050083166790964526@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":35483,"web_url":"https://patchwork.libcamera.org/comment/35483/","msgid":"<7c38b52d-62b3-48f1-8adb-050d4c9c406f@ideasonboard.com>","date":"2025-08-18T12:36:46","subject":"Re: [PATCH v1] libcamera: base: thread: eventDispatcher(): Not\n\tthread safe","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2025. 08. 18. 13:41 keltezéssel, Kieran Bingham írta:\n> Quoting Barnabás Pőcze (2025-08-15 11:46:20)\n>> 2025. 08. 15. 12:36 keltezéssel, Laurent Pinchart írta:\n>>> Hi Barnabás,\n>>>\n>>> Thank you for the patch.\n>>>\n>>> On Fri, Aug 15, 2025 at 12:21:39PM +0200, Barnabás Pőcze wrote:\n>>>> The function is not actually thread safe contrary to its documentation.\n>>>> Since it is currently not used in an unsafe context, simply remove the\n>>>> mention of thread safety from the documentation.\n>>>>\n>>>> The variable must still remain atomic because it is accessed internally\n>>>> from different threads, e.g. `Thread::postMessage()`.\n>>>>\n>>>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n>>>> ---\n>>>>    src/libcamera/base/thread.cpp | 2 --\n>>>>    1 file changed, 2 deletions(-)\n>>>>\n>>>> diff --git a/src/libcamera/base/thread.cpp b/src/libcamera/base/thread.cpp\n>>>> index d8fe0d697..d7b9b2e6f 100644\n>>>> --- a/src/libcamera/base/thread.cpp\n>>>> +++ b/src/libcamera/base/thread.cpp\n>>>> @@ -512,8 +512,6 @@ pid_t Thread::currentId()\n>>>>     * This function retrieves the internal event dispatcher for the thread. The\n>>>>     * returned event dispatcher is valid until the thread is destroyed.\n>>>>     *\n>>>> - * \\context This function is \\threadsafe.\n>>>> - *\n>>>\n>>> Could you please also add a\n>>>\n>>>        ASSERT(data_ == ThreadData::current());\n>>>\n>>> to the implementation, to avoid future issues ? With that,\n>>>\n>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>>\n>> Okay, done. I'll defer sending a new version unless other significant changes\n>> are needed.\n> \n> Adding the assertion is fine with me too as long as CI passes.\n\nIt does, fortunately: https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1492650\n\n\n> \n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n>>\n>>\n>>>\n>>>>     * \\return Pointer to the event dispatcher\n>>>>     */\n>>>>    EventDispatcher *Thread::eventDispatcher()\n>>>\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 27CE4BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 18 Aug 2025 12:36:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2373A6925F;\n\tMon, 18 Aug 2025 14:36:52 +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 EA61869257\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 18 Aug 2025 14:36:49 +0200 (CEST)","from [192.168.33.19] (185.221.141.188.nat.pool.zt.hu\n\t[185.221.141.188])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 50AD01249;\n\tMon, 18 Aug 2025 14:35:52 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"MrHIGIq7\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1755520552;\n\tbh=mZRVHGoeucpn6s7UtJjUbTs06e/smH5F2hnUyKVcdyc=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=MrHIGIq7pnfW+zwPhnZht4GolcqKamMW72+tCUwP7T8G/Z6MhcZoq/WUWlZlO3LUT\n\t6TYlC0BLFhSXBw7Sd24XXHrWiAavVOzBcp/Tj9IwydHLAOtDy3BR+ffWxMLeVKa84Q\n\tZdXa5QoU2ACaYaCp5rT32AgukMGAGW+mhsLIgwpo=","Message-ID":"<7c38b52d-62b3-48f1-8adb-050d4c9c406f@ideasonboard.com>","Date":"Mon, 18 Aug 2025 14:36:46 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v1] libcamera: base: thread: eventDispatcher(): Not\n\tthread safe","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20250815102139.2200196-1-barnabas.pocze@ideasonboard.com>\n\t<20250815103620.GK6201@pendragon.ideasonboard.com>\n\t<a2d627f4-7d25-4d73-a928-7af904d38325@ideasonboard.com>\n\t<175551729998.560048.2050083166790964526@ping.linuxembedded.co.uk>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<175551729998.560048.2050083166790964526@ping.linuxembedded.co.uk>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]