system

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Jan 31, 2022 License: MIT Imports: 12 Imported by: 10

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrLockerLocked = errors.Sentinel("locker: cannot acquire lock, already locked")
View Source
var Version = "develop"

Functions

func Every added in v1.2.0

func Every(ctx context.Context, d time.Duration, work func(t time.Time))

Runs a given work function every "d" duration until the provided context is canceled.

func FirstNotEmpty added in v1.3.0

func FirstNotEmpty(v ...string) string

FirstNotEmpty returns the first string passed in that is not an empty value.

func FormatBytes added in v1.2.0

func FormatBytes(b int64) string

func MustInt added in v1.3.0

func MustInt(v string) int

func ScanReader added in v1.2.0

func ScanReader(r io.Reader, callback func(line []byte)) error

ScanReader reads up to 64KB of line from the reader and emits that value over the websocket. If a line exceeds that size, it is truncated and only that amount is sent over.

Types

type AtomicBool

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

func NewAtomicBool added in v1.2.0

func NewAtomicBool(v bool) *AtomicBool

func (*AtomicBool) Load added in v1.2.0

func (ab *AtomicBool) Load() bool

func (*AtomicBool) MarshalJSON added in v1.2.0

func (ab *AtomicBool) MarshalJSON() ([]byte, error)

func (*AtomicBool) Store added in v1.2.0

func (ab *AtomicBool) Store(v bool)

func (*AtomicBool) SwapIf added in v1.2.0

func (ab *AtomicBool) SwapIf(v bool) bool

SwapIf stores the value "v" if the current value stored in the AtomicBool is the opposite boolean value. If successfully swapped, the response is "true", otherwise "false" is returned.

func (*AtomicBool) UnmarshalJSON added in v1.2.0

func (ab *AtomicBool) UnmarshalJSON(b []byte) error

type AtomicString added in v1.1.0

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

AtomicString allows for reading/writing to a given struct field without having to worry about a potential race condition scenario. Under the hood it uses a simple sync.RWMutex to control access to the value.

func NewAtomicString added in v1.1.0

func NewAtomicString(v string) *AtomicString

func (*AtomicString) Load added in v1.1.0

func (as *AtomicString) Load() string

Loads the string value and returns it.

func (*AtomicString) MarshalJSON added in v1.2.0

func (as *AtomicString) MarshalJSON() ([]byte, error)

func (*AtomicString) Store added in v1.1.0

func (as *AtomicString) Store(v string)

Stores the string value passed atomically.

func (*AtomicString) UnmarshalJSON added in v1.2.0

func (as *AtomicString) UnmarshalJSON(b []byte) error

type Information

type Information struct {
	Version       string `json:"version"`
	KernelVersion string `json:"kernel_version"`
	Architecture  string `json:"architecture"`
	OS            string `json:"os"`
	CpuCount      int    `json:"cpu_count"`
}

func GetSystemInformation

func GetSystemInformation() (*Information, error)

type Locker added in v1.6.0

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

func NewLocker added in v1.6.0

func NewLocker() *Locker

NewLocker returns a new Locker instance.

func (*Locker) Acquire added in v1.6.0

func (l *Locker) Acquire() error

Acquire will acquire the power lock if it is not currently locked. If it is already locked, acquire will fail to acquire the lock, and will return false.

func (*Locker) Destroy added in v1.6.0

func (l *Locker) Destroy()

Destroy cleans up the power locker by closing the channel.

func (*Locker) IsLocked added in v1.6.0

func (l *Locker) IsLocked() bool

IsLocked returns the current state of the locker channel. If there is currently a value in the channel, it is assumed to be locked.

func (*Locker) Release added in v1.6.0

func (l *Locker) Release()

Release will drain the locker channel so that we can properly re-acquire it at a later time. If the channel is not currently locked this function is a no-op and will immediately return.

func (*Locker) TryAcquire added in v1.6.0

func (l *Locker) TryAcquire(ctx context.Context) error

TryAcquire will attempt to acquire a power-lock until the context provided is canceled.

type Rate added in v1.6.0

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

Rate defines a rate limiter of n items (limit) per duration of time.

func NewRate added in v1.6.0

func NewRate(limit uint64, duration time.Duration) *Rate

func (*Rate) Reset added in v1.6.0

func (r *Rate) Reset()

Reset resets the internal state of the rate limiter back to zero.

func (*Rate) Try added in v1.6.0

func (r *Rate) Try() bool

Try returns true if under the rate limit defined, or false if the rate limit has been exceeded for the current duration.

Jump to

Keyboard shortcuts

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