void Lock::DBWrite::unlockDB() { if( _weLocked ) { recordTime(); // for lock stats if ( _nested ) lockState().unlockedNestable(); else lockState().unlockedOther(); _weLocked->unlock(); } if( _locked_w ) { if (DB_LEVEL_LOCKING_ENABLED) { qlk.unlock_w(); } else { qlk.unlock_W(); } } if( _locked_W ) { qlk.unlock_W(); } _weLocked = 0; _locked_W = _locked_w = false; }
void Lock::DBWrite::unlockDB() { if( _weLocked ) { recordTime(); // for lock stats if ( _nested ) _lockState->unlockedNestable(); else _lockState->unlockedOther(); _weLocked->unlock(); } if( _locked_w ) { wassert(_lockState->threadState() == 'w'); _lockState->unlocked(); qlk.q.unlock_w(); } if( _locked_W ) { qlk.unlock_W(_lockState); } _weLocked = 0; _locked_W = _locked_w = false; }
Lock::GlobalWrite::~GlobalWrite() { if (!noop) { recordTime(); // for lock stats qlk.unlock_W(); return; } }
void measure() { Sample sample; recordTime(sample); measureMemoryUsage(sample); m_samples.push_back(sample); }
Lock::GlobalWrite::~GlobalWrite() { // If the lock state is R, this means downgrade happened and this is only for fsyncLock. invariant(_lockState->isW() || _lockState->isR()); _lockState->unlockAll(); recordTime(); }
void Lock::DBLock::unlockDB() { _lockState->unlock(_id); // The last release reports time the lock was held if (_lockState->unlockAll()) { recordTime(); } }
void event(StatsEventId eventId) { Event event; recordTime(event); event.eventId = eventId; wxMutexLocker locker(m_eventsMutex); m_events.push_back(event); }
Lock::GlobalWrite::~GlobalWrite() { if( noop ) { return; } recordTime(); // for lock stats if (_lockState->threadState() == 'R') { // we downgraded qlk.unlock_R(_lockState); } else { qlk.unlock_W(_lockState); } }
bool Cutscenes::subtitlesWait(uint minTime) { EventsManager &events = *_vm->_events; events.updateGameCounter(); recordTime(); while (events.timeElapsed() < minTime || _subtitleSize != 0) { events.pollEventsAndWait(); if (events.isKeyMousePressed()) return false; showSubtitles(); } return true; }
void Lock::DBRead::unlockDB() { if( _weLocked ) { recordTime(); // for lock stats if( _nested ) lockState().unlockedNestable(); else lockState().unlockedOther(); _weLocked->unlock_shared(); } if( _locked_r ) { qlk.unlock_r(); } _weLocked = 0; _locked_r = false; }
void Lock::DBRead::unlockDB() { if (supportsDocLocking()) { if (nsIsFull(_ns)) { const newlm::ResourceId resIdCollection(newlm::RESOURCE_COLLECTION, _ns); _lockState->unlock(resIdCollection); } } const StringData db = nsToDatabaseSubstring(_ns); const newlm::ResourceId resIdDb(newlm::RESOURCE_DATABASE, db); _lockState->unlock(resIdDb); // The last release reports time the lock was held if (_lockState->unlockGlobal()) { recordTime(); } }
void Lock::DBRead::unlockDB() { if( _weLocked ) { recordTime(); // for lock stats if( _nested ) _lockState->unlockedNestable(); else _lockState->unlockedOther(); _weLocked->unlock_shared(); } if( _locked_r ) { wassert(_lockState->threadState() == 'r'); _lockState->unlocked(); qlk.q.unlock_r(); } _weLocked = 0; _locked_r = false; }
void Lock::GlobalRead::_tempRelease() { invariant(_lockState->isR()); invariant(_lockState->unlockGlobal()); recordTime(); }
void Cutscenes::resetSubtitles(uint lineNum, uint defaultSize) { _subtitleLineNum = lineNum; _subtitleSize = defaultSize; recordTime(); }
Lock::GlobalRead::~GlobalRead() { if( !noop ) { recordTime(); // for lock stats qlk.unlock_R(_lockState); } }
void Lock::GlobalWrite::_tempRelease() { invariant(_lockState->isW()); invariant(_lockState->unlockAll()); recordTime(); }
void WindowProxy::BackgroundTask::operator()() { if (!window) return; unsigned command; while (!((command = sleep()) & Abort)) { try { if (!window->getWindowPtr()) { state = Init; continue; } // // Restart // if (command & Restart) { deleteView(); state = Init; } // A binding document does not need a view. if (window->isBindingDocumentWindow()) { state = Done; continue; } // // Cascade // if (!view || (command & Cascade)) { state = Cascading; recordTime("%*sselector matching begin", window->windowDepth * 2, ""); if (!view) view = new(std::nothrow) ViewCSSImp(window->getWindowPtr()); if (view) { view->constructComputedStyles(); state = Cascaded; } else state = Init; recordTime("%*sselector matching end", window->windowDepth * 2, ""); continue; } // // Layout // if (command & Layout) { state = Layouting; view->setSize(window->width, window->height); // TODO: sync with mainloop recordTime("%*sstyle recalculation begin", window->windowDepth * 2, ""); view->calculateComputedStyles(); recordTime("%*sstyle recalculation end", window->windowDepth * 2, ""); recordTime("%*sreflow begin", window->windowDepth * 2, ""); view->layOut(); recordTime("%*sreflow end", window->windowDepth * 2, ""); // Even though every view flag should have been cleared now, // check them here and clear all of them after dumping the tree. if (view->gatherFlags() & ~Box::NEED_REPAINT) { std::cerr << "warning: reflow flags are not fully cleared:\n"; int level = getLogLevel(); if (level < 3) setLogLevel(3); view->dump(); setLogLevel(level); view->clearFlags(); } view->setFlags(Box::NEED_REPAINT); } state = Done; } catch (const std::exception& e) { std::cerr << "WindowProxy::BackgroundTask: " << e.what() << "\n"; throw; // TODO: Recover from exceptions } } }
Lock::GlobalRead::~GlobalRead() { _lockState->unlockAll(); recordTime(); }