Skip to main content

Module lock

Module lock 

Source
Expand description

Semáforo de contagem via lock files para limitar invocações paralelas (veja lock::acquire_cli_slot). Semáforo de contagem via lock files para limitar invocações paralelas do CLI.

acquire_cli_slot tenta adquirir um dos N slots disponíveis abrindo o arquivo cli-slot-{N}.lock no diretório de cache do SO e obtendo um flock exclusivo. O std::fs::File retornado DEVE ser mantido vivo durante toda a execução de main; descartá-lo libera o slot automaticamente para a próxima invocação.

Quando wait_seconds é Some(n) > 0, a função faz polling a cada crate::constants::CLI_LOCK_POLL_INTERVAL_MS milissegundos até o deadline. Quando é None ou Some(0), uma única tentativa é feita e Err(AppError::AllSlotsFull) é retornado imediatamente se todos os slots estiverem ocupados.

Functions§

acquire_cli_slot
Adquire um slot de concorrência no semáforo de max_concurrency posições.