| 235 | } |
| 236 | |
| 237 | bool MMContext::mmCheckTimers() |
| 238 | { |
| 239 | // Update: We cannot hold the global lock while invoking state machines because they can block. |
| 240 | // As an interim measure, just dont lock this and hope for the best. |
| 241 | //ScopedLock lock(gMMLock,__FILE__,__LINE__); // I think this is unnecessary; the channel cannot change when this is called, but be safe. |
| 242 | // Check MM timers. |
| 243 | |
| 244 | // checkTimers locks the transaction if any timer needs servicing. |
| 245 | bool result = false; |
| 246 | for (unsigned i = TE_first; i < TE_num; i++) { |
| 247 | RefCntPointer<TranEntry> tranp = mmGetTran(i); |
| 248 | if (! tranp.isNULL()) { result |= tranp->checkTimers(); } |
| 249 | } |
| 250 | return result; |
| 251 | } |
| 252 | |
| 253 | |
| 254 | // This is the first L3 message on the new channel. |
no test coverage detected