Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ResourceManager ¶
type ResourceManager[T any] struct { // contains filtered or unexported fields }
ResourceManager is a fair manager for distributing limited amount of resources to requesters.
func New ¶
func New[T any](limit int64) *ResourceManager[T]
New returns a new ResourceManager with `limit` number of resources.
func (*ResourceManager[T]) Release ¶
func (m *ResourceManager[T]) Release(n int64)
Release `n` resource to the manager.
func (*ResourceManager[T]) Request ¶
func (m *ResourceManager[T]) Request(key string, data T, n int64, notifyC chan T, cancelC chan struct{}) (acquired bool)
Request `n` resource from the manager for key `key`. Release must be called after done with the resource.
func (*ResourceManager[T]) Stats ¶
func (m *ResourceManager[T]) Stats() Stats
Stats returns statistics about current status.
Click to show internal directories.
Click to hide internal directories.