[RFC,v1,5/7] libcamera: camera: Make `waitingRequests_` an `std::deque`
diff mbox series

Message ID 20250924124713.3361707-6-barnabas.pocze@ideasonboard.com
State New
Headers show
Series
  • libcamera: camera: Add `applyControls()`
Related show

Commit Message

Barnabás Pőcze Sept. 24, 2025, 12:47 p.m. UTC
Use `std::deque` instead of `std::queue` because an `std::queue` cannot
be iterated.

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
---
 include/libcamera/internal/camera.h | 2 +-
 src/libcamera/pipeline_handler.cpp  | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

Patch
diff mbox series

diff --git a/include/libcamera/internal/camera.h b/include/libcamera/internal/camera.h
index 8a2e9ed58..0f50c14a5 100644
--- a/include/libcamera/internal/camera.h
+++ b/include/libcamera/internal/camera.h
@@ -37,7 +37,7 @@  public:
 	const PipelineHandler *pipe() const { return pipe_.get(); }
 
 	std::list<Request *> queuedRequests_;
-	std::queue<Request *> waitingRequests_;
+	std::deque<Request *> waitingRequests_;
 	ControlInfoMap controlInfo_;
 	ControlList properties_;
 
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
index e5f9e55c9..d0d3fbc79 100644
--- a/src/libcamera/pipeline_handler.cpp
+++ b/src/libcamera/pipeline_handler.cpp
@@ -370,7 +370,7 @@  void PipelineHandler::stop(Camera *camera)
 	 * after the device to keep them in order.
 	 */
 	Camera::Private *data = camera->_d();
-	std::queue<Request *> waitingRequests;
+	std::deque<Request *> waitingRequests;
 	waitingRequests.swap(data->waitingRequests_);
 
 	/* Stop the pipeline handler and let the queued requests complete. */
@@ -379,7 +379,7 @@  void PipelineHandler::stop(Camera *camera)
 	/* Cancel and signal as complete all waiting requests. */
 	while (!waitingRequests.empty()) {
 		Request *request = waitingRequests.front();
-		waitingRequests.pop();
+		waitingRequests.pop_front();
 		cancelRequest(request);
 	}
 
@@ -461,7 +461,7 @@  void PipelineHandler::queueRequest(Request *request)
 
 	Camera *camera = request->_d()->camera();
 	Camera::Private *data = camera->_d();
-	data->waitingRequests_.push(request);
+	data->waitingRequests_.push_back(request);
 
 	request->_d()->prepare(300ms);
 }
@@ -510,7 +510,7 @@  void PipelineHandler::doQueueRequests(Camera *camera)
 		 * Pop the request first, in case doQueueRequests() is called
 		 * recursively from within doQueueRequest()
 		 */
-		data->waitingRequests_.pop();
+		data->waitingRequests_.pop_front();
 		doQueueRequest(request);
 	}
 }