go/src/runtime/select.go

const debugSelect

type scase

var chansendpc

var chanrecvpc

func selectsetpc(pc *uintptr) {}

func sellock(scases []scase, lockorder []uint16) {}

func selunlock(scases []scase, lockorder []uint16) {}

func selparkcommit(gp *g, _ unsafe.Pointer) bool {}

func block() {}

// selectgo implements the select statement.
//
// cas0 points to an array of type [ncases]scase, and order0 points to
// an array of type [2*ncases]uint16 where ncases must be <= 65536.
// Both reside on the goroutine's stack (regardless of any escaping in
// selectgo).
//
// For race detector builds, pc0 points to an array of type
// [ncases]uintptr (also on the stack); for other builds, it's set to
// nil.
//
// selectgo returns the index of the chosen scase, which matches the
// ordinal position of its respective select{recv,send,default} call.
// Also, if the chosen scase was a receive operation, it reports whether
// a value was received.
func selectgo(cas0 *scase, order0 *uint16, pc0 *uintptr, nsends, nrecvs int, block bool) (int, bool) {}

func (c *hchan) sortkey() uintptr {}

type runtimeSelect

type selectDir

const _

const selectSend

const selectRecv

const selectDefault

//go:linkname reflect_rselect reflect.rselect
func reflect_rselect(cases []runtimeSelect) (int, bool) {}

func (q *waitq) dequeueSudoG(sgp *sudog) {}