func (this *Dispatcher) runCommonBusMultiplexer(input, output1, output2 channel.Channel) { // For each result got from execution units in the common data bus send to RS and ROB for { value, running := <-input.Channel() if !running { output1.Close() output2.Close() logger.Print(" => Flushing dispatcher unit %d (CDB Mux)", this.Index()) return } output1.Add(value) output2.Add(value) input.Release() } }