int PathTracerSplitted::ManagedRender(vector<Block*>* blockPool, int (*callBack) (const Block*)) { int result=1; while (!BlockManager::blockPool.empty()) { //SDL_mutexP(mutLock); Block* block = BlockManager::blockPool.back(); BlockManager::blockPool.pop_back(); //SDL_mutexV(mutLock); PathTracerSplitted::Render((void*)block); //Write Img using callback //SDL_mutexP(writerLock); int writerResult = callBack(block); //SDL_mutexV(mutLock); //printf("%d",block->OnFinCB); if(block->OnFinCB!=NULL) block->OnFinCB(block); delete block; result |= writerResult; } return result; };