libcamera: software_isp: Clear pending async work

Debayering is carried out on `ispWorkerThread_`. When stopping, the queued
work needs to be flushed or cancelled to ensure that the next time it starts,
it won't process stale data. So remove all messages targeting the `Debayer`
object on the worker thread.

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Tested-by: Robert Mader <robert.mader@collabora.com>
This commit is contained in:
Barnabás Pőcze
2025-08-13 16:40:20 +02:00
parent b9fa6e0e61
commit 8c30369119

View File

@@ -358,6 +358,7 @@ void SoftwareIsp::stop()
{
ispWorkerThread_.exit();
ispWorkerThread_.wait();
ispWorkerThread_.removeMessages(debayer_.get());
Thread::current()->dispatchMessages(Message::Type::InvokeMessage, this);