Smail/backend/internal/passwordcapacity/capacity.go
smail c82be24178
Some checks are pending
Security Checks / security (push) Waiting to run
修复全量测试竞态并更新审查夹具,保存证书覆盖调整前基线
2026-09-20 01:25:34 +08:00

19 lines
486 B
Go

// Package passwordcapacity 管理所有密码计算入口共享的并发名额。
package passwordcapacity
import "errors"
var ErrBusy = errors.New("password computation is busy")
var computationSlot = make(chan struct{}, 1)
// Acquire 满载时立即拒绝,不积压等待请求;调用方必须延迟释放名额。
func Acquire() (func(), error) {
select {
case computationSlot <- struct{}{}:
return func() { <-computationSlot }, nil
default:
return nil, ErrBusy
}
}