[{"id":29198,"web_url":"https://patchwork.libcamera.org/comment/29198/","msgid":"<39326431-f228-4b4d-8eb1-dcdccbcd81c2@ideasonboard.com>","date":"2024-04-12T03:55:30","subject":"Re: [PATCH] utils: ipc: Fix async main interface functions with no\n\tparameters","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Paul,\n\nOn 12/04/24 8:12 am, Paul Elder wrote:\n> If an async main interface function is defined with no parameters, there\n> would be a compilation error complaining about an extra comma. Fix this.\n\nMakes sense to me\n>\n> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n\n> ---\n>   .../generators/libcamera_templates/module_ipa_proxy.cpp.tmpl   | 3 ++-\n>   1 file changed, 2 insertions(+), 1 deletion(-)\n>\n> diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n> index 238cf4a5..01fe9c51 100644\n> --- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n> +++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n> @@ -175,7 +175,8 @@ void {{proxy_name}}::recvMessage(const IPCMessage &data)\n>   );\n>   {% elif method|is_async %}\n>   \tASSERT(state_ == ProxyRunning);\n> -\tproxy_.invokeMethod(&ThreadProxy::{{method.mojom_name}}, ConnectionTypeQueued,\n> +\tproxy_.invokeMethod(&ThreadProxy::{{method.mojom_name}}, ConnectionTypeQueued\n> +\t{%- if method|method_param_names|length > 0 -%}, {% endif -%}\n>   \t{%- for param in method|method_param_names -%}\n>   \t\t{{param}}{{- \", \" if not loop.last}}\n>   \t{%- endfor -%}","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 3047DBE08B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Apr 2024 03:55:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 629C063352;\n\tFri, 12 Apr 2024 05:55:37 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 50A5061B4F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Apr 2024 05:55:36 +0200 (CEST)","from [192.168.1.105] (unknown [103.251.226.65])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1E4989D5;\n\tFri, 12 Apr 2024 05:54:51 +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=\"svvfNziv\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1712894093;\n\tbh=jUREgdqQfcSxpdGZt13p7CSVZSQN97bEYNmd2S9Wcbk=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=svvfNzivuMyKC8xIAv9DjzGY+c/3WYVwgfRvCYAmZ9w4+RiW5sWqkny0vHSJsxele\n\t6o/bZyw46vs8U8NAte5vi/LtBOW4c6gySoFyQm3Uf6ke0e+6dq5DQGdsW0uv7nlqfR\n\tueO9B+c76UyJ7Cuca+sUSVhGubZw8IDOTKh+6Ct8=","Message-ID":"<39326431-f228-4b4d-8eb1-dcdccbcd81c2@ideasonboard.com>","Date":"Fri, 12 Apr 2024 09:25:30 +0530","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] utils: ipc: Fix async main interface functions with no\n\tparameters","Content-Language":"en-US","To":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"laurent.pinchart@ideasonboard.com","References":"<20240412024256.651465-1-paul.elder@ideasonboard.com>","From":"Umang Jain <umang.jain@ideasonboard.com>","In-Reply-To":"<20240412024256.651465-1-paul.elder@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","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":29205,"web_url":"https://patchwork.libcamera.org/comment/29205/","msgid":"<20240412084530.lttbcyemsc2ko7y2@macbook-air.speedport.ip>","date":"2024-04-12T08:45:30","subject":"Re: [PATCH] utils: ipc: Fix async main interface functions with no\n\tparameters","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"content":"Hi Paul,\n\nthanks for the patch.\n\nOn Fri, Apr 12, 2024 at 11:42:56AM +0900, Paul Elder wrote:\n> If an async main interface function is defined with no parameters, there\n> would be a compilation error complaining about an extra comma. Fix this.\n> \n> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> ---\n>  .../generators/libcamera_templates/module_ipa_proxy.cpp.tmpl   | 3 ++-\n>  1 file changed, 2 insertions(+), 1 deletion(-)\n> \n> diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n> index 238cf4a5..01fe9c51 100644\n> --- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n> +++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n> @@ -175,7 +175,8 @@ void {{proxy_name}}::recvMessage(const IPCMessage &data)\n>  );\n>  {% elif method|is_async %}\n>  \tASSERT(state_ == ProxyRunning);\n> -\tproxy_.invokeMethod(&ThreadProxy::{{method.mojom_name}}, ConnectionTypeQueued,\n> +\tproxy_.invokeMethod(&ThreadProxy::{{method.mojom_name}}, ConnectionTypeQueued\n> +\t{%- if method|method_param_names|length > 0 -%}, {% endif -%}\n>  \t{%- for param in method|method_param_names -%}\n>  \t\t{{param}}{{- \", \" if not loop.last}}\n>  \t{%- endfor -%}\n\nI did not test it, but wouldn't it be easier to place the comma before\nthe param and remove the two ifs like this:\n\nproxy_.invokeMethod(&ThreadProxy::{{method.mojom_name}}, ConnectionTypeQueued\n{%- for param in method|method_param_names -%}\n     , {{param}}\n{%- endfor -%}\n\n\nReviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> \n\nCheers,\nStefan\n\n\n> -- \n> 2.39.2\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 3070FC3213\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Apr 2024 08:45:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3E2FE63352;\n\tFri, 12 Apr 2024 10:45:35 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0CE136333B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Apr 2024 10:45:34 +0200 (CEST)","from ideasonboard.com\n\t(p200300e0774af4635726ec48835ba9d7.dip0.t-ipconnect.de\n\t[IPv6:2003:e0:774a:f463:5726:ec48:835b:a9d7])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 71960A12;\n\tFri, 12 Apr 2024 10:44:50 +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=\"HRrDFy/c\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1712911490;\n\tbh=PGge0twdlpSgBacEINvQYjdyQ+79yMXxghqMuNDQIAY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=HRrDFy/cG3CXArWCCBahdMdJeTVN+hOQkjN8FDWn5o+f1kiCkN/nNzv5yBk+RWY/E\n\t3d7VHxHNtu2aK8ovZrRnDnapYGbOpCqv1K1e+7QTkQOI1DbevsBajD/x6uajulHcjY\n\tFJvFH8/maqA34BpXaDUviE3wQFuuO1YcvnlNv/Z8=","Date":"Fri, 12 Apr 2024 10:45:30 +0200","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, laurent.pinchart@ideasonboard.com","Subject":"Re: [PATCH] utils: ipc: Fix async main interface functions with no\n\tparameters","Message-ID":"<20240412084530.lttbcyemsc2ko7y2@macbook-air.speedport.ip>","References":"<20240412024256.651465-1-paul.elder@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240412024256.651465-1-paul.elder@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":29213,"web_url":"https://patchwork.libcamera.org/comment/29213/","msgid":"<20240412143212.GA28815@pendragon.ideasonboard.com>","date":"2024-04-12T14:32:12","subject":"Re: [PATCH] utils: ipc: Fix async main interface functions with no\n\tparameters","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, Apr 12, 2024 at 10:45:30AM +0200, Stefan Klug wrote:\n> On Fri, Apr 12, 2024 at 11:42:56AM +0900, Paul Elder wrote:\n> > If an async main interface function is defined with no parameters, there\n> > would be a compilation error complaining about an extra comma. Fix this.\n> > \n> > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> > ---\n> >  .../generators/libcamera_templates/module_ipa_proxy.cpp.tmpl   | 3 ++-\n> >  1 file changed, 2 insertions(+), 1 deletion(-)\n> > \n> > diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n> > index 238cf4a5..01fe9c51 100644\n> > --- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n> > +++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy.cpp.tmpl\n> > @@ -175,7 +175,8 @@ void {{proxy_name}}::recvMessage(const IPCMessage &data)\n> >  );\n> >  {% elif method|is_async %}\n> >  \tASSERT(state_ == ProxyRunning);\n> > -\tproxy_.invokeMethod(&ThreadProxy::{{method.mojom_name}}, ConnectionTypeQueued,\n> > +\tproxy_.invokeMethod(&ThreadProxy::{{method.mojom_name}}, ConnectionTypeQueued\n> > +\t{%- if method|method_param_names|length > 0 -%}, {% endif -%}\n> >  \t{%- for param in method|method_param_names -%}\n> >  \t\t{{param}}{{- \", \" if not loop.last}}\n> >  \t{%- endfor -%}\n> \n> I did not test it, but wouldn't it be easier to place the comma before\n> the param and remove the two ifs like this:\n> \n> proxy_.invokeMethod(&ThreadProxy::{{method.mojom_name}}, ConnectionTypeQueued\n> {%- for param in method|method_param_names -%}\n>      , {{param}}\n> {%- endfor -%}\n\nThis sounds better to me.\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nfor that version.\n\n> Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com>","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 60490C3213\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Apr 2024 14:32:25 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 505846334D;\n\tFri, 12 Apr 2024 16:32:24 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A7AB661BAE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Apr 2024 16:32:22 +0200 (CEST)","from pendragon.ideasonboard.com (ip-185-104-138-69.ptr.icomera.net\n\t[185.104.138.69])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9244AA12;\n\tFri, 12 Apr 2024 16:31:38 +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=\"jWekNKO2\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1712932299;\n\tbh=+fQTJzsiZm/puCk3jFSBoUemL8/wIcj6+3rLZBy+mmw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=jWekNKO2Smp/oWDqfN3S1JO2aK/f4E7sAco+NdSnZwZTCj8Z/I0oxp2wcS/gugciD\n\tDrIkSoDMSAwMSXlEMFbZzfKDLk2r3pzhSyEYfrOjoF6jaSPbRsFDF9yexCydKzl5Mq\n\tb4e7y45/rpD6fN1N+qtyp8fgieJeYS5c42g3zenk=","Date":"Fri, 12 Apr 2024 17:32:12 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] utils: ipc: Fix async main interface functions with no\n\tparameters","Message-ID":"<20240412143212.GA28815@pendragon.ideasonboard.com>","References":"<20240412024256.651465-1-paul.elder@ideasonboard.com>\n\t<20240412084530.lttbcyemsc2ko7y2@macbook-air.speedport.ip>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240412084530.lttbcyemsc2ko7y2@macbook-air.speedport.ip>","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>"}}]