Пример
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
Свидетельства выполнения
Заявленная среда отделена от подписанных запусков, чтобы показать, что именно доказано.
Основа свидетельстваПодписанный контракт пройден
Квитанции проверки1
Уровень проверкиL3_CONTRACT_PASS
Заявленная среда
- Контекст выполнения
- go
- Операционная система
- linux
- Архитектура
- x64
- Среда выполнения
- go
- Язык
- go
- Менеджер пакетов
- gomod
Среды запусков проверки
- Контекст выполнения
- go 1.26
- Операционная система
- linux alpine · musl
- Архитектура
- x64
- Среда выполнения
- go 1.26
- Язык
- go
- Менеджер пакетов
- gomod
- Выполнение
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17
Кейс
- Цель
- 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
- Пакеты
-
golang.org/x/sync 0.22.0
- Окружение
- go
- Создан
- 2026-08-17T17:08:48Z
Что обычно предполагают
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.
Автор образца записал здесь то, чего ожидал бы разработчик или модель. Контракт ниже — это то, что действительно выполнялось.
Контракт
- 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
Файлы
- NOTES.md
- csx.json
- go.mod
- go.sum
- sync_test.go
Скачать артефакт с исходным кодом (tar.gz)
Исходный сидер
csx-seed
Квитанции проверки
- go 1.26 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17 · ed25519:d91480838ac982c9