diff options
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/initservice/baseinitsvc/initservice.C | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/usr/initservice/baseinitsvc/initservice.C b/src/usr/initservice/baseinitsvc/initservice.C index d06b36f6a..acd70bb42 100644 --- a/src/usr/initservice/baseinitsvc/initservice.C +++ b/src/usr/initservice/baseinitsvc/initservice.C @@ -1060,8 +1060,7 @@ bool InitService::unregisterShutdownEvent(msg_q_t i_msgQ) { for(EventRegistry_t::iterator r = iv_regMsgQ.begin(); - r != iv_regMsgQ.end(); - ++r) + r != iv_regMsgQ.end();) { // erase all instances if(r->msgQ == i_msgQ) @@ -1072,7 +1071,11 @@ bool InitService::unregisterShutdownEvent(msg_q_t i_msgQ) r->compID, r->msgQ, r->msgType, r->msgPriority); result = true; - iv_regMsgQ.erase(r); + r = iv_regMsgQ.erase(r); + } + else + { + ++r; } } } |