[libcamera-devel,v2,07/11] android: camera_stream: Protect buffers initialization by mutex_
diff mbox series

Message ID 20211129114453.3186042-8-hiroh@chromium.org
State Superseded
Headers show
Series
  • Introduce clang thread safety annotations
Related show

Commit Message

Hirokazu Honda Nov. 29, 2021, 11:44 a.m. UTC
The initialization on buffers_ in CameraStrean::configure() is not
protected by mutex_. It is no problem because configure() is not
invoked simultaneously while other functions are called. This
protects it to keep the thread safety consistency for buffers access.

Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
---
 src/android/camera_stream.cpp | 1 +
 1 file changed, 1 insertion(+)

Comments

Laurent Pinchart Nov. 30, 2021, 4:21 a.m. UTC | #1
Hi Hiro,

Thank you for the patch.

On Mon, Nov 29, 2021 at 08:44:49PM +0900, Hirokazu Honda wrote:
> The initialization on buffers_ in CameraStrean::configure() is not
> protected by mutex_. It is no problem because configure() is not
> invoked simultaneously while other functions are called. This
> protects it to keep the thread safety consistency for buffers access.
> 
> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  src/android/camera_stream.cpp | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp
> index 5a62b7cd..2181d094 100644
> --- a/src/android/camera_stream.cpp
> +++ b/src/android/camera_stream.cpp
> @@ -125,6 +125,7 @@ int CameraStream::configure()
>  		if (ret < 0)
>  			return ret;
>  
> +		MutexLocker lock(*mutex_);
>  		/* Save a pointer to the reserved frame buffers */
>  		for (const auto &frameBuffer : allocator_->buffers(stream()))
>  			buffers_.push_back(frameBuffer.get());

Patch
diff mbox series

diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp
index 5a62b7cd..2181d094 100644
--- a/src/android/camera_stream.cpp
+++ b/src/android/camera_stream.cpp
@@ -125,6 +125,7 @@  int CameraStream::configure()
 		if (ret < 0)
 			return ret;
 
+		MutexLocker lock(*mutex_);
 		/* Save a pointer to the reserved frame buffers */
 		for (const auto &frameBuffer : allocator_->buffers(stream()))
 			buffers_.push_back(frameBuffer.get());