MCPcopy Create free account
hub / github.com/eapache/channels / NewSharedBuffer

Function NewSharedBuffer

shared_buffer.go:44–64  ·  view source on GitHub ↗
(size BufferCap)

Source from the content-addressed store, hash-verified

42}
43
44func NewSharedBuffer(size BufferCap) *SharedBuffer {
45 if size < 0 && size != Infinity {
46 panic("channels: invalid negative size in NewSharedBuffer")
47 } else if size == None {
48 panic("channels: SharedBuffer does not support unbuffered behaviour")
49 }
50
51 buf := &SharedBuffer{
52 size: size,
53 in: make(chan *sharedBufferChannel),
54 }
55
56 buf.cases = append(buf.cases, reflect.SelectCase{
57 Dir: reflect.SelectRecv,
58 Chan: reflect.ValueOf(buf.in),
59 })
60
61 go buf.mainLoop()
62
63 return buf
64}
65
66//NewChannel spawns and returns a new channel sharing the underlying buffer.
67func (buf *SharedBuffer) NewChannel() SimpleChannel {

Callers 4

TestSharedBufferMultipleFunction · 0.85
ExampleSharedBufferFunction · 0.85

Calls 1

mainLoopMethod · 0.95

Tested by 4

TestSharedBufferMultipleFunction · 0.68
ExampleSharedBufferFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…