bool csp::OpAlt::SelectChannelProcessToTrigger( Host& host ) { CORE_ASSERT( m_pCaseTriggered == NULL ); bool allCasesClosed = true; for( int i = 0; i < m_numCases; ++i ) { AltCase& altCase = m_cases[ i ]; if( m_pNilCase == &altCase ) { m_pCaseTriggered = m_pNilCase; allCasesClosed = false; m_argumentsMoved = true; DetachChannels(); host.PushEvalStep( ThisProcess() ); break; } Channel* pChannel = altCase.m_pChannel; if( pChannel || altCase.m_time >= 0.0f ) allCasesClosed = false; if( pChannel && pChannel->OutAttached() ) { ChannelAttachmentOut_i& out = pChannel->OutAttachment(); out.Communicate( host, ThisProcess() ); break; } } return allCasesClosed; }