[PATCH 2/4] libcamera: Use disconnect signal in ipa proxy worker
Kieran Bingham
kieran.bingham at ideasonboard.com
Sun Oct 20 00:45:11 CEST 2024
Quoting Harvey Yang (2024-10-18 08:57:35)
> Previously the worker might not receive the disconnect signal, and the
> forked process might stay alive forever.
>
> This CL also helps DMA buf recycling, as the algo process might hold DMA
> buf file descriptors.
Should this just be part of the previous patch? Or is it somehow
distinct?
>
> Signed-off-by: Harvey Yang <chenghaoyang at chromium.org>
> Co-developed-by: Yudhistira Erlandinata <yerlandinata at chromium.org>
> Signed-off-by: Yudhistira Erlandinata <yerlandinata at chromium.org>
> ---
> .../libcamera_templates/module_ipa_proxy_worker.cpp.tmpl | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl
> index 1f990d3f9..68d68c4a5 100644
> --- a/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl
> +++ b/utils/codegen/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl
> @@ -60,6 +60,10 @@ public:
>
> ~{{proxy_worker_name}}() {}
>
> + void disconnected() {
> + exit_ = true;
> + }
> +
> void readyRead()
> {
> IPCUnixSocket::Payload _message;
> @@ -131,6 +135,7 @@ public:
> return EXIT_FAILURE;
> }
> socket_.readyRead.connect(this, &{{proxy_worker_name}}::readyRead);
> + socket_.disconnected.connect(this, &{{proxy_worker_name}}::disconnected);
>
> ipa_ = dynamic_cast<{{interface_name}} *>(ipam->createInterface());
> if (!ipa_) {
> --
> 2.47.0.rc1.288.g06298d1525-goog
>
More information about the libcamera-devel
mailing list