i read the select function: ``` func selectgo(cas0 *scase, order0 *uint16, ncases int) (int, bool) { ... // lock all the channels involved in the select sellock(scases, lockorder) } ``` why we should lock all the channels? i think lock one by one when loop may be better , because it will quickly