Began re-re-re-<times X>-doing the GUI visualization framework.
[aesalon.git] / gui / src / session / DataRequestQueue.cpp
blob828a893a47aad60c38f5b620cb6a3f6e36b0112e
1 #include "DataRequestQueue.h"
3 DataRequestQueue::DataRequestQueue() {
6 DataRequestQueue::~DataRequestQueue() {
10 void DataRequestQueue::push_request(DataRequest *request) {
11 list_mutex.lock();
12 request_list.enqueue(request);
13 list_mutex.unlock();
16 DataRequest *DataRequestQueue::pop_request() {
17 /* Do this out of order so that the mutex is locked for the smallest length of time possible. */
18 /* NOTE: dubious speed gains are offset by an obvious complexity increase . . . */
19 DataRequest *request = NULL;
20 list_mutex.lock();
21 request = request_list.dequeue();
22 list_mutex.unlock();
23 return request;
26 int DataRequestQueue::current_requests() {
27 int count;
28 list_mutex.lock();
29 count = request_list.count();
30 list_mutex.unlock();
31 return count;