Stefan Schuermans commited on 2018-09-09 16:22:42
Showing 1 changed files, with 6 additions and 3 deletions.
| ... | ... |
@@ -133,9 +133,12 @@ void CallMgr::run() |
| 133 | 133 |
|
| 134 | 134 |
// call time callees |
| 135 | 135 |
TimeCallees::const_iterator itTC; |
| 136 |
- for (itTC = timeCallees.begin(); itTC != timeCallees.end(); ++itTC) {
|
|
| 137 |
- m_timeCallees.erase(*itTC); // first remove request from callee map |
|
| 138 |
- (*itTC)->timeCall(); // then call callee |
|
| 136 |
+ for (itTC = timeCallees.begin(); itTC != timeCallees.end(); ) {
|
|
| 137 |
+ TimeCallees::const_iterator itTCE = itTC; // save iterator for erase |
|
| 138 |
+ TimeCallee *tc = *itTC; // save pointer to time callee for callback |
|
| 139 |
+ itTC++; // advance loop iterator to next element |
|
| 140 |
+ m_timeCallees.erase(*itTCE); // first remove request from callee map |
|
| 141 |
+ tc->timeCall(); // then call callee |
|
| 139 | 142 |
} |
| 140 | 143 |
|
| 141 | 144 |
} // if timeout |
| 142 | 145 |