1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
-
+
-
-
+
+
-
+
-
+
-
+
|
#include <vector>
#import "cube.h"
#import "protos.h"
static OFMutableArray<void (^)(void)> *queue;
static std::vector<void (^)(void)> *queue;
void
enqueueInit(void (^init)(void))
{
if (queue == nil)
queue = [[OFMutableArray alloc] init];
if (queue == NULL)
queue = new std::vector<void (^)(void)>();
[queue addObject:init];
queue->push_back(init);
}
void
processInitQueue(void)
{
for (void (^init)(void) in queue)
for (auto &init : *queue)
init();
[queue removeAllObjects];
queue->clear();
}
|