Ejemplo
Handle semaphore weighted acquisition, FIFO anti-starvation head-of-line blocking, TryAcquire waiter suppression, canceled waiter unblocking, and excess release panics
sha256:0cad4dd8b986e020f9eebd78f63e6c5a68bc3ffa5cb9d52f9d5f9d4b235d0ee9
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
- Handle semaphore weighted acquisition, FIFO anti-starvation head-of-line blocking, TryAcquire waiter suppression, canceled waiter unblocking, and excess release panics HOW
- Paquetes
-
golang.org/x/sync 0.22.0
- Entorno
- go
- Creado
- 2026-08-17T15:40:26Z
Lo que suele suponerse
a weighted semaphore grants available capacity to incoming requests whenever unallocated tokens suffice, allowing small requests to bypass earlier larger queued waiters.
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 semaphore.Weighted enforces strict FIFO ordering so smaller Acquire requests remain blocked behind a larger head waiter even when sufficient unallocated tokens exist
- assert TryAcquire returns false whenever waiters are queued in the wait list even if unallocated capacity is available
- assert canceling a blocked head waiter context immediately unblocks subsequent queued waiters without requiring an additional Release
- assert calling Acquire with an already-canceled context returns context.Canceled immediately without modifying token capacity
- assert calling Release with a weight greater than currently held tokens panics immediately
Archivos
- NOTES.md
- contract_test.go
- csx.json
- go.mod
- go.sum
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