Vuo 2.4.4
Loading...
Searching...
No Matches
VuoModuleCompilationQueue.hh
Go to the documentation of this file.
1
10#pragma once
11
12#include <mutex>
13#include <condition_variable>
14#include "VuoFileUtilities.hh"
15
28{
29public:
33 class Item
34 {
35 public:
36 Item();
37 string moduleKey;
38 string sourcePath;
39 string sourceCode;
43 dispatch_group_t loadingGroup;
44 pair<int, int> priority;
45
46 bool hasHigherPriority(Item *other);
47 };
48
50 void enqueue(Item *item);
51 Item * next();
52 void completed(Item *item);
53
54private:
55 Item * ripeItem(map<string, list< pair<Item *, bool> > >::iterator iter);
56 bool& ripeItemIsCompiling(map<string, list< pair<Item *, bool> > >::iterator iter);
57 void pluckRipeItem(map<string, list< pair<Item *, bool> > >::iterator iter);
58
65 map<string, list< pair<Item *, bool> > > queue;
66
67 std::mutex queueMutex;
68 std::condition_variable queueChanged;
69
70 static const int maxConcurrentCompilations;
71};