Skip to content

miniproto.media.scheduler.MediaPermit

MediaPermit(scheduler: _MediaScheduler, state: _TransferState, charged_bytes: int) -> None

A charged scheduler reservation that must eventually be released.

Use as an async context manager or call :meth:release. The first release returns capacity; repeated releases are harmless and return capacity at most once. Holding a permit keeps its charged bytes and transfer operation slot active, even after transfer closure, until it is released.

Bind a newly granted charge to its scheduler and transfer state.

Parameters:

  • scheduler (_MediaScheduler) – Private owner that accounts for release capacity.
  • state (_TransferState) – Registered transfer state whose live-permit count is updated.
  • charged_bytes (int) – Already rounded reservation size in bytes.