limit

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package limit provides a channel-based semaphore for bounding concurrency.

Index

Constants

This section is empty.

Variables

View Source
var ErrLimitReturn = errors.New("limit: discarding token, pool is full, returned multiple times")

ErrLimitReturn indicates more tokens were returned than borrowed.

Functions

This section is empty.

Types

type Limit

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

Limit controls the number of concurrent borrows.

func NewLimit

func NewLimit(n int) Limit

NewLimit creates a Limit that can borrow n elements concurrently.

func (Limit) Borrow

func (l Limit) Borrow()

Borrow borrows an element in blocking mode.

func (Limit) Return

func (l Limit) Return() error

Return returns a borrowed element, erroring when returning more than borrowed.

func (Limit) TryBorrow

func (l Limit) TryBorrow() bool

TryBorrow borrows an element without blocking.

Jump to

Keyboard shortcuts

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