From 7b252634fda31d99f52552711c406647fc6cff0f Mon Sep 17 00:00:00 2001
From: Sylvain <[EMAIL REDACTED]>
Date: Sat, 11 May 2024 23:12:13 +0200
Subject: [PATCH] Fixed bug #9672 - v4l2/camera prevent deadlock when there is
a delay between SDL_ReleaseCameraFrame and SDL_CloseCamera
---
src/camera/v4l2/SDL_camera_v4l2.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/camera/v4l2/SDL_camera_v4l2.c b/src/camera/v4l2/SDL_camera_v4l2.c
index 8d061c969f58a..1999e450296cc 100644
--- a/src/camera/v4l2/SDL_camera_v4l2.c
+++ b/src/camera/v4l2/SDL_camera_v4l2.c
@@ -107,6 +107,12 @@ static int V4L2_WaitDevice(SDL_CameraDevice *device)
if ((retval == -1) && (errno == EINTR)) {
retval = 0; // pretend it was a timeout, keep looping.
}
+
+ // Thread is requested to shut down
+ if (SDL_AtomicGet(&device->shutdown)) {
+ return 0;
+ }
+
} while (retval == 0);
return retval;