char *Grid::blockAsMemory(quint32 block) { if ( _blocks[block]->inMemory() ) { // no load needed GridBlockInternal *du = _blocks[block]; char * p = du->blockAsMemory(); return p; } Locker<> lock(_mutex); if(!update(block, true)) return 0; GridBlockInternal *du = _blocks[block]; char * p = du->blockAsMemory(); return p; }
char *Grid::blockAsMemory(quint32 block, bool creation) { if ( _allInMemory) { // no cache case GridBlockInternal *du = _blocks[block]; char * p = du->blockAsMemory(); return p; } Locker<> lock(_mutex); if(!update(block, creation)) return 0; GridBlockInternal *du = _blocks[_cache[block]]; char * p = du->blockAsMemory(); return p; }