var next interface{} for { select{ case data := <-‐ ch.inChan: ch.queue.Enqueue(data) case ch.outChan <-‐ next: ch.queue.Dequeue() } if ch.queue.Length() > 0{ next = ch.queue.Peak() }else{ next = nil } } } • queueを持ったgorou?neを間に噛ま せばブロックしない • 参考 – hFps://github.com/eapache/channels 後ろが詰まっている時はこのcaseが呼ばれず常に inputの⽅方のcaseが呼ばれてselect抜けるので inChanへの書き込みがブロックしなくなる 擬似コードなのでそのまま使っちゃダメ