[libcamera-devel] [PATCH 0/2] Add Object::deleteLater() support

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Jul 28 17:27:43 CEST 2020


Hi Umang,

On Tue, Jul 28, 2020 at 10:57:21AM +0000, Umang Jain wrote:
> Implementation of Object::deleteLater() which ensures shared objects
> are deleted in the thread to which they belong. This fixes the issue
> where on hot-unplug, the Camera object is deleted in QCam's application
> thread instead of CameraManager's thread and triggering the ASSERT()
> in processNotifier (since the event notifier got deleted out of 
> context in a different thread). See [1] for discussion.
> 
> [1] https://lists.libcamera.org/pipermail/libcamera-devel/2020-July/010951.html
> 
> Umang Jain (2):
>   libcamera: object: Add deleteLater() support
>   libcamera: camera: Ensure deletion via deleteLater()
> 
>  include/libcamera/camera.h           |  2 +-
>  include/libcamera/internal/message.h |  1 +
>  include/libcamera/object.h           |  2 ++
>  src/libcamera/camera.cpp             |  2 +-
>  src/libcamera/object.cpp             | 20 ++++++++++++++++++++
>  5 files changed, 25 insertions(+), 2 deletions(-)

It's a nice and simple fix :-)

Could you add a test case for Object::deleteLater() ? It should test the
function both when calling from the Object's thread and from a different
thread. In the first case, it would also be nice to call deleteLater()
twice in a row to ensure deletion only occurs once.

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list