INNER CODE UNIT · Go
AcquireResource
ovh/utask · utask.go:252
func AcquireResource(ctx context.Context, name string) error {
if global == nil {
return nil
}
if _, ok := global.deadResources[name]; ok {
return ErrDeadResource
}
s := global.resourceSemaphores[name]
if s == nil {
return nil
}
semaphoreCtx := ctx
if global.resourceAcquireTimeoutDuration != 0 {
ctx, cancelFunc := context.WithTimeout(ctx, global.resourceAcquireTimeoutDuration)
defer cancelFunc()
semaphoreCtx = ctx