[libcamera-devel,2/4] libcamera: camera_manager: Make CameraManager::Private::mutex_ mutable

Message ID 20200921031057.3564-3-laurent.pinchart@ideasonboard.com
State Accepted
Headers show
Series
  • libcamera: Implement d-pointer design pattern
Related show

Commit Message

Laurent Pinchart Sept. 21, 2020, 3:10 a.m. UTC
The mutex_ stored in the CameraManager::Private class is used to protect
members that may need to be accessed from const functions. Make it
mutable to allow this.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/libcamera/camera_manager.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Niklas Söderlund Sept. 21, 2020, 9:22 a.m. UTC | #1
Hi Laurent,

Thanks for your patch.

On 2020-09-21 06:10:55 +0300, Laurent Pinchart wrote:
> The mutex_ stored in the CameraManager::Private class is used to protect
> members that may need to be accessed from const functions. Make it
> mutable to allow this.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

I was unaware of the mutable keyword so I learnt something, thanks.

Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>

> ---
>  src/libcamera/camera_manager.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
> index 47d56256abd6..780a66a7ac10 100644
> --- a/src/libcamera/camera_manager.cpp
> +++ b/src/libcamera/camera_manager.cpp
> @@ -46,7 +46,7 @@ public:
>  	 * - initialized_ and status_ during initialization
>  	 * - cameras_ and camerasByDevnum_ after initialization
>  	 */
> -	Mutex mutex_;
> +	mutable Mutex mutex_;
>  	std::vector<std::shared_ptr<Camera>> cameras_;
>  	std::map<dev_t, std::weak_ptr<Camera>> camerasByDevnum_;
>  
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
Jacopo Mondi Sept. 21, 2020, 9:52 a.m. UTC | #2
Hi Laurent

On Mon, Sep 21, 2020 at 06:10:55AM +0300, Laurent Pinchart wrote:
> The mutex_ stored in the CameraManager::Private class is used to protect
> members that may need to be accessed from const functions. Make it
> mutable to allow this.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

Thanks

> ---
>  src/libcamera/camera_manager.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
> index 47d56256abd6..780a66a7ac10 100644
> --- a/src/libcamera/camera_manager.cpp
> +++ b/src/libcamera/camera_manager.cpp
> @@ -46,7 +46,7 @@ public:
>  	 * - initialized_ and status_ during initialization
>  	 * - cameras_ and camerasByDevnum_ after initialization
>  	 */
> -	Mutex mutex_;
> +	mutable Mutex mutex_;
>  	std::vector<std::shared_ptr<Camera>> cameras_;
>  	std::map<dev_t, std::weak_ptr<Camera>> camerasByDevnum_;
>
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

Patch

diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index 47d56256abd6..780a66a7ac10 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -46,7 +46,7 @@  public:
 	 * - initialized_ and status_ during initialization
 	 * - cameras_ and camerasByDevnum_ after initialization
 	 */
-	Mutex mutex_;
+	mutable Mutex mutex_;
 	std::vector<std::shared_ptr<Camera>> cameras_;
 	std::map<dev_t, std::weak_ptr<Camera>> camerasByDevnum_;