/** * When using non-blocking privatization, this is called to check the * privatization clock. This will make sure that a doomed transaction doesn't * do anything dangerous with an object that is possibly being written * non-transactionally. It will throw an stm::RollBack transaction if * validation fails. * * @throws stm::RollBack */ void checkPrivatizerClock() { #ifdef STM_PRIV_NONBLOCKING while (privatizer_clock_cache != privatizer_clock) { privatizer_clock_cache = privatizer_clock; validate(); verifySelf(); } #endif }
MBOOL IPostProcPipe:: Cmd_Get1ParamBasedOn1Input:: execute() { if ( verifySelf() ) { IPostProcPipeBridge*const pBridge = reinterpret_cast<IPostProcPipeBridge*>(mpIPipe); // Mutex::Autolock _lock(pBridge->getLockRef()); // PostProcPipe*const pPipe = pBridge->getImp(); return pPipe->onGet1ParamBasedOn1Input(mu4InParam, mpu4OutParam); } return MFALSE; }
MBOOL IPostProcPipe:: Cmd_Set2Params:: execute() { if ( verifySelf() ) { IPostProcPipeBridge*const pBridge = reinterpret_cast<IPostProcPipeBridge*>(mpIPipe); // Mutex::Autolock _lock(pBridge->getLockRef()); // PostProcPipe*const pPipe = pBridge->getImp(); return pPipe->onSet2Params(mu4Param1, mu4Param2); } return MFALSE; }