|
@@ -17,7 +17,7 @@ TickQueue::~TickQueue()
|
|
|
delete[] queue;
|
|
|
}
|
|
|
|
|
|
-void TickQueue::startNextTick(Framework::Array<Block*>* zSources)
|
|
|
+void TickQueue::startNextTick(Framework::Array<Tickable*>* zSources)
|
|
|
{
|
|
|
std::unique_lock<std::mutex> lk(mutex);
|
|
|
readPosition = 0;
|
|
@@ -25,29 +25,29 @@ void TickQueue::startNextTick(Framework::Array<Block*>* zSources)
|
|
|
int count = zSources->getEintragAnzahl();
|
|
|
if (count >= maxSize)
|
|
|
{
|
|
|
- Block** temp = new Block*[count + 1000];
|
|
|
- memcpy(queue, temp, sizeof(Block*) * maxSize);
|
|
|
- memset(temp + sizeof(Block*) * maxSize,
|
|
|
+ Tickable** temp = new Tickable*[count + 1000];
|
|
|
+ memcpy(queue, temp, sizeof(Tickable*) * maxSize);
|
|
|
+ memset(temp + sizeof(Tickable*) * maxSize,
|
|
|
0,
|
|
|
- sizeof(Block*) * (count + 1000 - maxSize));
|
|
|
+ sizeof(Tickable*) * (count + 1000 - maxSize));
|
|
|
maxSize = count + 1000;
|
|
|
delete[] queue;
|
|
|
queue = temp;
|
|
|
}
|
|
|
- for (Block* block : *zSources)
|
|
|
+ for (Tickable* block : *zSources)
|
|
|
queue[writePosition++] = block;
|
|
|
lk.unlock();
|
|
|
hasBlocks.notify_all();
|
|
|
}
|
|
|
|
|
|
-void TickQueue::addToQueue(Block* zBlock)
|
|
|
+void TickQueue::addToQueue(Tickable* zBlock)
|
|
|
{
|
|
|
std::unique_lock<std::mutex> lk(mutex);
|
|
|
if (writePosition >= maxSize)
|
|
|
{
|
|
|
- Block** temp = new Block*[maxSize + 1000];
|
|
|
- memcpy(queue, temp, sizeof(Block*) * maxSize);
|
|
|
- memset(temp + sizeof(Block*) * maxSize, 0, sizeof(Block*) * 1000);
|
|
|
+ Tickable** temp = new Tickable*[maxSize + 1000];
|
|
|
+ memcpy(queue, temp, sizeof(Tickable*) * maxSize);
|
|
|
+ memset(temp + sizeof(Tickable*) * maxSize, 0, sizeof(Tickable*) * 1000);
|
|
|
maxSize += 1000;
|
|
|
delete[] queue;
|
|
|
queue = temp;
|
|
@@ -57,7 +57,7 @@ void TickQueue::addToQueue(Block* zBlock)
|
|
|
hasBlocks.notify_one();
|
|
|
}
|
|
|
|
|
|
-Block* TickQueue::zNextBlock(bool& waiting)
|
|
|
+Tickable* TickQueue::zNext(bool& waiting)
|
|
|
{
|
|
|
std::unique_lock<std::mutex> lk(mutex);
|
|
|
if (readPosition == writePosition && exit) return 0;
|