sync2

package
v1.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2020 License: Apache-2.0 Imports: 3 Imported by: 24

Documentation

Overview

Package sync2 provides extra functionality along the same lines as sync.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AtomicBool

type AtomicBool struct {
	// contains filtered or unexported fields
}

AtomicBool gives an atomic boolean variable.

func NewAtomicBool

func NewAtomicBool(n bool) AtomicBool

NewAtomicBool initializes a new AtomicBool with a given value.

func (*AtomicBool) CompareAndSwap

func (i *AtomicBool) CompareAndSwap(o, n bool) bool

CompareAndSwap atomatically swaps the old with the new value.

func (*AtomicBool) Get

func (i *AtomicBool) Get() bool

Get atomically returns the current value.

func (*AtomicBool) Set

func (i *AtomicBool) Set(n bool)

Set atomically sets n as new value.

type AtomicDuration

type AtomicDuration struct {
	// contains filtered or unexported fields
}

AtomicDuration is a wrapper with a simpler interface around atomic.(Add|Store|Load|CompareAndSwap)Int64 functions.

func NewAtomicDuration

func NewAtomicDuration(duration time.Duration) AtomicDuration

NewAtomicDuration initializes a new AtomicDuration with a given value.

func (*AtomicDuration) Add

func (d *AtomicDuration) Add(duration time.Duration) time.Duration

Add atomically adds duration to the value.

func (*AtomicDuration) CompareAndSwap

func (d *AtomicDuration) CompareAndSwap(oldval, newval time.Duration) (swapped bool)

CompareAndSwap atomatically swaps the old with the new value.

func (*AtomicDuration) Get

func (d *AtomicDuration) Get() time.Duration

Get atomically returns the current value.

func (*AtomicDuration) Set

func (d *AtomicDuration) Set(duration time.Duration)

Set atomically sets duration as new value.

type AtomicInt32

type AtomicInt32 struct {
	// contains filtered or unexported fields
}

AtomicInt32 is a wrapper with a simpler interface around atomic.(Add|Store|Load|CompareAndSwap)Int32 functions.

func NewAtomicInt32

func NewAtomicInt32(n int32) AtomicInt32

NewAtomicInt32 initializes a new AtomicInt32 with a given value.

func (*AtomicInt32) Add

func (i *AtomicInt32) Add(n int32) int32

Add atomically adds n to the value.

func (*AtomicInt32) CompareAndSwap

func (i *AtomicInt32) CompareAndSwap(oldval, newval int32) (swapped bool)

CompareAndSwap atomatically swaps the old with the new value.

func (*AtomicInt32) Get

func (i *AtomicInt32) Get() int32

Get atomically returns the current value.

func (*AtomicInt32) Set

func (i *AtomicInt32) Set(n int32)

Set atomically sets n as new value.

type AtomicInt64

type AtomicInt64 struct {
	// contains filtered or unexported fields
}

AtomicInt64 is a wrapper with a simpler interface around atomic.(Add|Store|Load|CompareAndSwap)Int64 functions.

func NewAtomicInt64

func NewAtomicInt64(n int64) AtomicInt64

NewAtomicInt64 initializes a new AtomicInt64 with a given value.

func (*AtomicInt64) Add

func (i *AtomicInt64) Add(n int64) int64

Add atomically adds n to the value.

func (*AtomicInt64) CompareAndSwap

func (i *AtomicInt64) CompareAndSwap(oldval, newval int64) (swapped bool)

CompareAndSwap atomatically swaps the old with the new value.

func (*AtomicInt64) Get

func (i *AtomicInt64) Get() int64

Get atomically returns the current value.

func (*AtomicInt64) Set

func (i *AtomicInt64) Set(n int64)

Set atomically sets n as new value.

type AtomicString

type AtomicString struct {
	// contains filtered or unexported fields
}

AtomicString gives you atomic-style APIs for string, but it's only a convenience wrapper that uses a mutex. So, it's not as efficient as the rest of the atomic types.

func (*AtomicString) CompareAndSwap

func (s *AtomicString) CompareAndSwap(oldval, newval string) (swqpped bool)

CompareAndSwap atomatically swaps the old with the new value.

func (*AtomicString) Get

func (s *AtomicString) Get() string

Get atomically returns the current value.

func (*AtomicString) Set

func (s *AtomicString) Set(str string)

Set atomically sets str as new value.

type Semaphore

type Semaphore struct {
	// contains filtered or unexported fields
}

Semaphore is a counting semaphore with the option to specify a timeout.

func NewSemaphore

func NewSemaphore(count int, timeout time.Duration) *Semaphore

NewSemaphore creates a Semaphore. The count parameter must be a positive number. A timeout of zero means that there is no timeout.

func (*Semaphore) Acquire

func (sem *Semaphore) Acquire() bool

Acquire returns true on successful acquisition, and false on a timeout.

func (*Semaphore) Release

func (sem *Semaphore) Release()

Release releases the acquired semaphore. You must not release more than the number of semaphores you've acquired.

func (*Semaphore) Size

func (sem *Semaphore) Size() int

Size returns the current number of available slots.

func (*Semaphore) TryAcquire

func (sem *Semaphore) TryAcquire() bool

TryAcquire acquires a semaphore if it's immediately available. It returns false otherwise.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL