diff options
| author | Michael Hudson-Doyle <michael.hudson@canonical.com> | 2015-04-11 10:01:54 +1200 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2015-04-15 16:59:49 +0000 |
| commit | ab4df700b841fcd9a5d249b77c547bad9574d948 (patch) | |
| tree | d6edc85b7486f5cb33bdc4f9bbff2d77a26a97d5 /src/runtime/select.go | |
| parent | f7be77e5b61706b6264367c43b78a9a4a93f8f3a (diff) | |
| download | go-ab4df700b841fcd9a5d249b77c547bad9574d948.tar.xz | |
runtime: merge slice and sliceStruct
By removing type slice, renaming type sliceStruct to type slice and
whacking until it compiles.
Has a pleasing net reduction of conversions.
Fixes #10188
Change-Id: I77202b8df637185b632fd7875a1fdd8d52c7a83c
Reviewed-on: https://go-review.googlesource.com/8770
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/runtime/select.go')
| -rw-r--r-- | src/runtime/select.go | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/runtime/select.go b/src/runtime/select.go index 98ac5a3d61..2dd541b530 100644 --- a/src/runtime/select.go +++ b/src/runtime/select.go @@ -159,7 +159,7 @@ func selectdefaultImpl(sel *hselect, callerpc uintptr, so uintptr) { } func sellock(sel *hselect) { - lockslice := sliceStruct{unsafe.Pointer(sel.lockorder), int(sel.ncase), int(sel.ncase)} + lockslice := slice{unsafe.Pointer(sel.lockorder), int(sel.ncase), int(sel.ncase)} lockorder := *(*[]*hchan)(unsafe.Pointer(&lockslice)) var c *hchan for _, c0 := range lockorder { @@ -181,7 +181,7 @@ func selunlock(sel *hselect) { // Now if the first M touches sel, it will access freed memory. n := int(sel.ncase) r := 0 - lockslice := sliceStruct{unsafe.Pointer(sel.lockorder), n, n} + lockslice := slice{unsafe.Pointer(sel.lockorder), n, n} lockorder := *(*[]*hchan)(unsafe.Pointer(&lockslice)) // skip the default case if n > 0 && lockorder[0] == nil { @@ -221,7 +221,7 @@ func selectgoImpl(sel *hselect) (uintptr, uint16) { print("select: sel=", sel, "\n") } - scaseslice := sliceStruct{unsafe.Pointer(&sel.scase), int(sel.ncase), int(sel.ncase)} + scaseslice := slice{unsafe.Pointer(&sel.scase), int(sel.ncase), int(sel.ncase)} scases := *(*[]scase)(unsafe.Pointer(&scaseslice)) var t0 int64 @@ -241,7 +241,7 @@ func selectgoImpl(sel *hselect) (uintptr, uint16) { // optimizing (and needing to test). // generate permuted order - pollslice := sliceStruct{unsafe.Pointer(sel.pollorder), int(sel.ncase), int(sel.ncase)} + pollslice := slice{unsafe.Pointer(sel.pollorder), int(sel.ncase), int(sel.ncase)} pollorder := *(*[]uint16)(unsafe.Pointer(&pollslice)) for i := 0; i < int(sel.ncase); i++ { pollorder[i] = uint16(i) @@ -255,7 +255,7 @@ func selectgoImpl(sel *hselect) (uintptr, uint16) { // sort the cases by Hchan address to get the locking order. // simple heap sort, to guarantee n log n time and constant stack footprint. - lockslice := sliceStruct{unsafe.Pointer(sel.lockorder), int(sel.ncase), int(sel.ncase)} + lockslice := slice{unsafe.Pointer(sel.lockorder), int(sel.ncase), int(sel.ncase)} lockorder := *(*[]*hchan)(unsafe.Pointer(&lockslice)) for i := 0; i < int(sel.ncase); i++ { j := i |
