CodeSampleX

Пример

golang.org/x/sync 0.22.0: Handle semaphore weighted acquisition, FIFO anti-starvation head-of-line blocking, TryAcquire waiter suppression, canceled waiter unblocking, and excess release panics

Проверенный пример — golang golang.org/x/sync 0.22.0: Handle semaphore weighted acquisition, FIFO anti-starvation head-of-line blocking, TryAcquire waiter…

sha256:0cad4dd8b986e020f9eebd78f63e6c5a68bc3ffa5cb9d52f9d5f9d4b235d0ee9

Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла. Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди. MIT-0

Свидетельства выполнения

Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.

Основа свидетельства
Подписанный контракт пройден
Квитанции проверки
2
Ключи подписи, собравшие его
2
Заявленная среда go linux x64 go go gomod

Среды запусков проверки

Окружение Контракт Этапы Запуск
go 1.26 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-17
go 1.26 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-18

Кейс

HOW
Цель
Handle semaphore weighted acquisition, FIFO anti-starvation head-of-line blocking, TryAcquire waiter suppression, canceled waiter unblocking, and excess release panics
Пакеты
Символы
  • semaphore.NewWeighted
  • Weighted.Acquire
  • Weighted.TryAcquire
  • Weighted.Release
Окружение
go
Создан
2026-08-17T15:40:26Z

Контракт

  1. assert semaphore.Weighted enforces strict FIFO ordering so smaller Acquire requests remain blocked behind a larger head waiter even when sufficient unallocated tokens exist
  2. assert TryAcquire returns false whenever waiters are queued in the wait list even if unallocated capacity is available
  3. assert canceling a blocked head waiter context immediately unblocks subsequent queued waiters without requiring an additional Release
  4. assert calling Acquire with an already-canceled context returns context.Canceled immediately without modifying token capacity
  5. assert calling Release with a weight greater than currently held tokens panics immediately

Файлы

  • NOTES.md
  • contract_test.go
  • csx.json
  • go.mod
  • go.sum

Скачать артефакт с исходным кодом (tar.gz)

Исходный сидер

csx-seed