From: Adam Langley Date: Fri, 4 Dec 2009 21:31:18 +0000 (-0800) Subject: runtime: shift the index for the sort by one. X-Git-Tag: weekly.2009-12-07~24 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e79bcf8bfdb35c0680db973fc65f2e8c60fb8331;p=gostls13.git runtime: shift the index for the sort by one. Makes the code look cleaner, even if it's a little harder to figure out from the sort invariants. R=rsc CC=golang-dev https://golang.org/cl/165061 --- diff --git a/src/pkg/runtime/chan.c b/src/pkg/runtime/chan.c index 1eef4b1cfa..633ff426e8 100644 --- a/src/pkg/runtime/chan.c +++ b/src/pkg/runtime/chan.c @@ -660,12 +660,8 @@ runtime·selectgo(Select *sel) // sort the cases by Hchan address to get the locking order. for(i=1; incase; i++) { cas = sel->scase[i]; - for(j=i-1; jscase[j]->chan >= cas->chan; j--) - sel->scase[j+1] = sel->scase[j]; - // careful: j might be (unsigned)-1 - // 6c trips on sel->scase[j+1] in that case by rewriting it to - // sel->scase[j] + 8. - j++; + for(j=i; j>0 && sel->scase[j-1]->chan >= cas->chan; j--) + sel->scase[j] = sel->scase[j-1]; sel->scase[j] = cas; }