SYMBOL INDEX (61 symbols across 6 files) FILE: src/bench/bench.go type chanRec (line 32) | type chanRec struct function wrapBounded (line 38) | func wrapBounded(bound uint64) *chanRec { function wrapUnbounded (line 51) | func wrapUnbounded() *chanRec { function wrapChan (line 64) | func wrapChan(chanSize int) *chanRec { function benchHelp (line 73) | func benchHelp(N int, chanBase *chanRec, nProcs int) time.Duration { function render (line 119) | func render(N, numCPUs int, gmp bool, desc string, t time.Duration) { function main (line 129) | func main() { FILE: src/fchan/bounded.go type waitch (line 32) | type waitch function waitChan (line 34) | func waitChan() waitch { type BoundedChan (line 50) | type BoundedChan struct method NewHandle (line 79) | func (b *BoundedChan) NewHandle() *BoundedChan { method adjust (line 88) | func (b *BoundedChan) adjust() { method Enqueue (line 112) | func (b *BoundedChan) Enqueue(e Elt) { method Dequeue (line 183) | func (b *BoundedChan) Dequeue() Elt { function NewBounded (line 58) | func NewBounded(bufsz uint64) *BoundedChan { function tryCas (line 101) | func tryCas(seg *segment, segInd index, elt unsafe.Pointer) bool { FILE: src/fchan/fchan_test.go constant perThread (line 23) | perThread = 256 function unorderedEltsEq (line 25) | func unorderedEltsEq(s1, s2 []int) bool { function TestBoundedQueueElements (line 36) | func TestBoundedQueueElements(t *testing.T) { function TestQueueElements (line 82) | func TestQueueElements(t *testing.T) { function TestSerialQueue (line 125) | func TestSerialQueue(t *testing.T) { function TestConcurrentQueueAddFirst (line 142) | func TestConcurrentQueueAddFirst(t *testing.T) { function TestConcurrentQueueTakeFirst (line 172) | func TestConcurrentQueueTakeFirst(t *testing.T) { function minN (line 205) | func minN(b *testing.B) int { FILE: src/fchan/q.go constant debug (line 25) | debug = false type Elt (line 30) | type Elt type index (line 31) | type index method SplitInd (line 270) | func (i index) SplitInd() (cellNum index, cellInd index) { type listElt (line 32) | type listElt type waiter (line 34) | type waiter struct method Send (line 45) | func (w *waiter) Send(e Elt) { method Recv (line 50) | func (w *waiter) Recv() Elt { function makeWaiter (line 39) | func makeWaiter() *waiter { type weakWaiter (line 107) | type weakWaiter struct method Signal (line 119) | func (w *weakWaiter) Signal() { method Wait (line 127) | func (w *weakWaiter) Wait() { function makeWeakWaiter (line 113) | func makeWeakWaiter(i int32) *weakWaiter { type segList (line 139) | type segList struct method TryPush (line 154) | func (s *segList) TryPush(e listElt) { method TryPop (line 212) | func (s *segList) TryPop() (e listElt, ok bool) { type segLink (line 149) | type segLink struct constant segShift (line 241) | segShift = 12 constant segSize (line 242) | segSize = 1 << segShift type segment (line 248) | type segment struct method Load (line 255) | func (s *segment) Load(i index) Elt { type queue (line 262) | type queue struct method Grow (line 286) | func (q *queue) Grow(tail *segment) { constant spare (line 276) | spare = true function advance (line 316) | func advance(ptr **segment, cell index) { FILE: src/fchan/unbounded.go type UnboundedChan (line 24) | type UnboundedChan struct method NewHandle (line 50) | func (u *UnboundedChan) NewHandle() *UnboundedChan { method Enqueue (line 61) | func (u *UnboundedChan) Enqueue(e Elt) { method adjust (line 94) | func (u *UnboundedChan) adjust() { method Dequeue (line 104) | func (u *UnboundedChan) Dequeue() Elt { function New (line 33) | func New() *UnboundedChan { method findCell (line 76) | func (q *queue) findCell(start *segment, cellID index) *segment { FILE: writeup/graphs.py class BenchResult (line 25) | class BenchResult(object): method __init__ (line 26) | def __init__(self, name, gmp, max_hw_thr, nops, secs): function parse_line (line 34) | def parse_line(line): function plot_points (line 48) | def plot_points(all_results, gmp): function main (line 62) | def main(fname):