From 847ba941ea345f01b2f5176432b6541902a41d2b Mon Sep 17 00:00:00 2001 From: Nilay Vaish Date: Fri, 18 Mar 2011 14:12:01 -0500 Subject: SLICC: Remove the keyword wake_up_all_dependents In order to add stall and wait facility for protocols, a keyword wake_up_all_dependents was introduced. This patch removes the keyword, instead this functionality is now implemented as function call. --- src/mem/slicc/symbols/StateMachine.py | 40 ++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 19 deletions(-) (limited to 'src/mem/slicc/symbols/StateMachine.py') diff --git a/src/mem/slicc/symbols/StateMachine.py b/src/mem/slicc/symbols/StateMachine.py index 3c5f860ea..301e34ea5 100644 --- a/src/mem/slicc/symbols/StateMachine.py +++ b/src/mem/slicc/symbols/StateMachine.py @@ -745,26 +745,28 @@ $c_ident::wakeUpAllBuffers() std::vector wokeUpMsgVecs; - for (WaitingBufType::iterator buf_iter = m_waiting_buffers.begin(); - buf_iter != m_waiting_buffers.end(); - ++buf_iter) { - for (MsgVecType::iterator vec_iter = buf_iter->second->begin(); - vec_iter != buf_iter->second->end(); - ++vec_iter) { - if (*vec_iter != NULL) { - (*vec_iter)->reanalyzeAllMessages(); - } - } - wokeUpMsgVecs.push_back(buf_iter->second); - } - - for (std::vector::iterator wb_iter = wokeUpMsgVecs.begin(); - wb_iter != wokeUpMsgVecs.end(); - ++wb_iter) { - delete (*wb_iter); + if(m_waiting_buffers.size() > 0) { + for (WaitingBufType::iterator buf_iter = m_waiting_buffers.begin(); + buf_iter != m_waiting_buffers.end(); + ++buf_iter) { + for (MsgVecType::iterator vec_iter = buf_iter->second->begin(); + vec_iter != buf_iter->second->end(); + ++vec_iter) { + if (*vec_iter != NULL) { + (*vec_iter)->reanalyzeAllMessages(); + } + } + wokeUpMsgVecs.push_back(buf_iter->second); + } + + for (std::vector::iterator wb_iter = wokeUpMsgVecs.begin(); + wb_iter != wokeUpMsgVecs.end(); + ++wb_iter) { + delete (*wb_iter); + } + + m_waiting_buffers.clear(); } - - m_waiting_buffers.clear(); } void -- cgit v1.2.3