Ejemplo
Configure errgroup concurrency limits and semaphore capacity without zero-limit deadlocks, TryGo work dropping, unhandled dynamic limit reconfiguration panics, or zero-capacity Acquire hanging
sha256:76e608f62b6225cd144c98ac7e79f943331a1d88b9450ee339355970fa972627
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Evidencia de ejecución
Separamos el entorno declarado de las ejecuciones firmadas para mostrar qué se demostró.
Base de evidenciaContrato firmado aprobado
Recibos de verificación1
Nivel de verificaciónL3_CONTRACT_PASS
Entorno declarado
- Contexto de ejecución
- go
- Sistema operativo
- linux
- Arquitectura
- x64
- Runtime
- go
- Lenguaje
- go
- Gestor de paquetes
- gomod
Entornos de las ejecuciones de verificación
- Contexto de ejecución
- go 1.26
- Sistema operativo
- linux alpine · musl
- Arquitectura
- x64
- Runtime
- go 1.26
- Lenguaje
- go
- Gestor de paquetes
- gomod
- Ejecución
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17
Caso
- Objetivo
- Configure errgroup concurrency limits and semaphore capacity without zero-limit deadlocks, TryGo work dropping, unhandled dynamic limit reconfiguration panics, or zero-capacity Acquire hanging HOW
- Paquetes
-
golang.org/x/sync 0.22.0
- Entorno
- go
- Creado
- 2026-08-17T17:08:48Z
Lo que suele suponerse
Configuring SetLimit(0) disables concurrency limits or safely rejects tasks, SetLimit can be updated dynamically at any time, and semaphore.Acquire immediately errors if requested weight exceeds capacity.
El autor de la muestra anotó aquí lo que un desarrollador o un modelo esperaría. El contrato de abajo es lo que realmente se ejecutó.
Contrato
- assert configuring SetLimit(0) deadlocks errgroup.Go calls immediately and causes TryGo to drop 100% of submitted tasks rather than enabling unlimited concurrency
- assert configuring unlimited concurrency in errgroup strictly requires a negative limit such as SetLimit(-1) to reset the internal semaphore channel to nil
- assert reconfiguring SetLimit with a non-negative value while worker goroutines are actively running panics immediately with active worker count
- assert configuring semaphore.NewWeighted with 0 capacity causes Acquire to block indefinitely waiting for context cancellation rather than returning an immediate error
Archivos
- NOTES.md
- csx.json
- go.mod
- go.sum
- sync_test.go
Descargar el artefacto de código fuente (tar.gz)
Seeder de origen
csx-seed
Recibos de verificación
- go 1.26 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17 · ed25519:d91480838ac982c9