Documentation ¶
Overview ¶
Package bytequeue provides []byte queue for libcentrifugo package client messages.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ByteQueue ¶
type ByteQueue interface { // Add a []byte to the back of the queue // will return false if the queue is closed. // In that case the []byte is dropped. Add(i []byte) bool // Remove will remove a []byte from the queue. // If false is returned, it either means 1) there were no items on the queue // or 2) the queue is closed. Remove() ([]byte, bool) // Close the queue and discard all entried in the queue // all goroutines in wait() will return Close() // CloseRemaining will close the queue and return all entried in the queue. // All goroutines in wait() will return CloseRemaining() [][]byte // Closed returns true if the queue has been closed // The call cannot guarantee that the queue hasn't been // closed while the function returns, so only "true" has a definite meaning. Closed() bool // Wait for a []byte to be added or queue to be closed. // If there is items on the queue the first will // be returned immediately. // Will return "", false if the queue is closed. // Otherwise the return value of "remove" is returned. Wait() ([]byte, bool) // Cap returns the capacity (without allocations). Cap() int // Len returns the current length of the queue. Len() int // Size returns the current size of the queue in bytes. Size() int }
ByteQueue is an unbounded queue of []byte. The queue is goroutine safe. Inspired by http://blog.dubbelboer.com/2015/04/25/go-faster-queue.html (MIT)
Click to show internal directories.
Click to hide internal directories.