Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BSBuffer ¶
type BSBuffer struct {
// contains filtered or unexported fields
}
BSBuffer: B - Blocking - Read() calls are blocking. S - Safe - Supports arbitrary amount of readers and writers. Could be unblocked and turned into SBuffer.
func (*BSBuffer) Read ¶
Reads data from the BSBuffer, blocking until a writer arrives or the BSBuffer is unblocked. If the write end is closed with an error, that error is returned as err; otherwise err is EOF. Supports multiple concurrent goroutines and p is valid forever.
func (*BSBuffer) Unblock ¶
func (b *BSBuffer) Unblock()
Turns BSBuffer into SBuffer: Read() is no longer blocking, but still safe. Unblock() is safe to call multiple times.
func (*BSBuffer) Write ¶
Non-blocking write appends the contents of p to the buffer, growing the buffer as needed. The return value n is the length of p; err is always nil. If the buffer becomes too large, Write will panic with ErrTooLarge. Supports multiple concurrent goroutines and p is safe for reuse right away.