@@ -8,9 +8,8 @@
#pragma once
#include <atomic>
-#include <list>
+#include <deque>
#include <memory>
-#include <queue>
#include <set>
#include <stdint.h>
#include <string>
@@ -36,8 +35,8 @@ public:
PipelineHandler *pipe() { return pipe_.get(); }
const PipelineHandler *pipe() const { return pipe_.get(); }
- std::list<Request *> queuedRequests_;
- std::queue<Request *> waitingRequests_;
+ std::deque<Request *> queuedRequests_;
+ std::deque<Request *> waitingRequests_;
ControlInfoMap controlInfo_;
ControlList properties_;
@@ -372,7 +372,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. */
@@ -381,7 +381,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();
/*
* Cancel all requests by marking them as cancelled and calling
@@ -472,7 +472,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);
}
@@ -521,7 +521,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);
}
}
`std::queue` already uses `std::deque` as its implementation, so there is no difference there. And getting a specific index of `std::list` is a linear operation, so replace it with an `std::deque`, to enable pipeline handlers to look into the list more easily. Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> --- include/libcamera/internal/camera.h | 7 +++---- src/libcamera/pipeline_handler.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 8 deletions(-)