Smail/backend/utils/password/capacity.go
smail b4f5f51c0e
Some checks are pending
Security Checks / security (push) Waiting to run
保存认证容量保护整改检查点待远程复审
2026-09-17 12:00:45 +08:00

18 lines
413 B
Go

package password
import "errors"
var ErrBusy = errors.New("password computation is busy")
// 所有协议和恢复流程共享一个计算名额;满载立即拒绝,不积压等待请求。
var computationSlot = make(chan struct{}, 1)
func acquireComputation() (func(), error) {
select {
case computationSlot <- struct{}{}:
return func() { <-computationSlot }, nil
default:
return nil, ErrBusy
}
}