Documentation ¶
Index ¶
- type AtomicArray
- type AtomicBool
- type AtomicInt
- func (ai *AtomicInt) AddAndGet(delta int) int
- func (ai *AtomicInt) CompareAndSet(expect int, update int) bool
- func (ai *AtomicInt) DecrementAndGet() int
- func (ai *AtomicInt) Get() int
- func (ai *AtomicInt) GetAndAdd(delta int) int
- func (ai *AtomicInt) GetAndDecrement() int
- func (ai *AtomicInt) GetAndIncrement() int
- func (ai *AtomicInt) GetAndSet(newValue int) int
- func (ai *AtomicInt) IncrementAndGet() int
- func (ai *AtomicInt) Set(newValue int)
- type AtomicQueue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AtomicArray ¶
type AtomicArray struct {
// contains filtered or unexported fields
}
AtomicArray implement a fixed width array with atomic semantics
func NewAtomicArray ¶
func NewAtomicArray(length int) *AtomicArray
NewAtomicArray generates a new AtomicArray instance.
func (*AtomicArray) Get ¶
func (aa *AtomicArray) Get(idx int) interface{}
Get atomically retrieves an element from the Array. If idx is out of range, it will return nil
func (*AtomicArray) Set ¶
func (aa *AtomicArray) Set(idx int, node interface{}) error
Set atomically sets an element in the Array. If idx is out of range, it will return an error
type AtomicBool ¶
type AtomicBool struct {
// contains filtered or unexported fields
}
AtomicBool implements a synchronized boolean value
func NewAtomicBool ¶
func NewAtomicBool(value bool) *AtomicBool
NewAtomicBool generates a new AtomicBoolean instance.
func (*AtomicBool) CompareAndSet ¶
func (ab *AtomicBool) CompareAndSet(expect bool, update bool) bool
CompareAndSet atomically sets the boolean value to updated value, if the current value is as expected.
func (*AtomicBool) Get ¶
func (ab *AtomicBool) Get() bool
Get atomically retrieves the boolean value.
func (*AtomicBool) GetAndToggle ¶
func (ab *AtomicBool) GetAndToggle() bool
GetAndToggle atomically retrieves the current boolean value first, and then toggles it.
func (*AtomicBool) Set ¶
func (ab *AtomicBool) Set(newVal bool)
Set atomically sets the boolean value.
func (*AtomicBool) ToggleAndGet ¶
func (ab *AtomicBool) ToggleAndGet() bool
ToggleAndGet atomically toggles the boolean value first, and then retrieves it.
type AtomicInt ¶
type AtomicInt struct {
// contains filtered or unexported fields
}
AtomicInt implements an int value with atomic semantics
func NewAtomicInt ¶
NewAtomicInt generates a new AtomicInt instance.
func (*AtomicInt) CompareAndSet ¶
CompareAndSet atomically sets the value to the given updated value if the current value == expected value. Returns true if the expectation was met
func (*AtomicInt) DecrementAndGet ¶
DecrementAndGet atomically decrements current value by one and returns the result.
func (*AtomicInt) GetAndAdd ¶
GetAndAdd atomically adds the given delta to the current value and returns the result.
func (*AtomicInt) GetAndDecrement ¶
GetAndDecrement atomically decrements the current value by one and returns the result.
func (*AtomicInt) GetAndIncrement ¶
GetAndIncrement atomically increments current value by one and returns the result.
func (*AtomicInt) GetAndSet ¶
GetAndSet atomically sets current value to the given value and returns the old value.
func (*AtomicInt) IncrementAndGet ¶
IncrementAndGet atomically increments current value by one and returns the result.
type AtomicQueue ¶
type AtomicQueue struct {
// contains filtered or unexported fields
}
AtomicQueue is a blocking FIFO queue. If the queue is empty, nil is returned. if the queue is full, offer will return false
func NewAtomicQueue ¶
func NewAtomicQueue(size int) *AtomicQueue
NewQueue creates a new queue with initial size.
func (*AtomicQueue) Offer ¶
func (aq *AtomicQueue) Offer(item interface{}) bool
Offer adds an item to the queue unless the queue is full. In case the queue is full, the item will not be added to the queue and false will be returned
func (*AtomicQueue) Poll ¶
func (aq *AtomicQueue) Poll() interface{}
Poll removes and returns an item from the queue. If the queue is empty, nil will be returned.