blob: dcec5668b9d80d4cecb9e149ce67f8dbad2d06a1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#ifndef MBGL_UTIL_WORK_QUEUE
#define MBGL_UTIL_WORK_QUEUE
#include <mbgl/util/noncopyable.hpp>
#include <mbgl/util/work_request.hpp>
#include <functional>
#include <memory>
#include <mutex>
#include <queue>
namespace mbgl {
namespace util {
class RunLoop;
class WorkQueue : private util::noncopyable {
public:
WorkQueue();
virtual ~WorkQueue();
void push(std::function<void()>&&);
private:
void pop(const std::function<void()>&);
std::queue<std::unique_ptr<WorkRequest>> queue;
std::mutex queueMutex;
RunLoop* runLoop;
};
}
}
#endif
|