Documentation

Overview

    Package semaphore provides an implementation of a counting semaphore.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type Semaphore

    type Semaphore chan struct{}

      Semaphore is a buffered channel based implementation of a counting semaphore.

      func New

      func New(permits int) Semaphore

        New creates a Semaphore with the specified number of permits.

        func (Semaphore) Acquire

        func (s Semaphore) Acquire(ctx context.Context) error

          Acquire acquires a permit. This call will block until a permit is available or the provided context is completed.

          If the provided context is completed, the method will return the cancellation error.

          func (Semaphore) Release

          func (s Semaphore) Release()

            Release releases a permit.

            func (Semaphore) TryAcquire

            func (s Semaphore) TryAcquire() bool

              TryAcquire acquires the semaphore without blocking. Returns true if the semaphore is acquired. Otherwise, returns false and leaves the semaphore unchanged.

              Source Files