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
This commit is contained in:
Adam Langley 2009-12-04 13:31:18 -08:00
parent 0b5cc31693
commit e79bcf8bfd
1 changed files with 2 additions and 6 deletions

View File

@ -660,12 +660,8 @@ runtime·selectgo(Select *sel)
// sort the cases by Hchan address to get the locking order.
for(i=1; i<sel->ncase; i++) {
cas = sel->scase[i];
for(j=i-1; j<i && sel->scase[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;
}