noCV
SCONCUR-102 · Establish the machine contract

Reject work when the bounded queue is full

Practice briefBugFoundational

Producers append without limit while workers are paused, and the process consumes all available memory.

Focused work estimate
1h 30m + prerequisites
Priority in the scenario
Medium
Engineering practice
Backpressure · API design

Estimated field mix

  • Systems programming70%
  • Performance engineering30%

Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.

Your next step

Review it, then add it to your workspace.

The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.

Project context

A fictional image-indexing utility runs CPU-only synthetic jobs through a Rust worker pool. Its prototype loses wakeups, blocks shutdown, and treats cancellation as completion. Build a local library and deterministic concurrency harness; image content, GPU work, and production deployment are excluded.

Setup prerequisites

  • Mutexes and condition variables
  • Atomics
  • Thread lifecycle

Preceding work

No earlier ticket is required. Complete the project setup above.

Acceptance criteria

  • Capacity is explicit and positive
  • Submission returns accepted, timed out, or closed
  • A rejected job remains caller-owned

Implementation constraints

  • Do not hide backpressure behind an unbounded overflow list.

Verification to include

  • Fill the queue, release one slot, and submit the next job.
  • Keep workers paused and confirm memory and queue length remain bounded.

Deliverables

  • Bounded submission API and overload tests

Rollout and recovery

Start with conservative capacity and surface rejections to the local caller.

Value of the work

For the engineer: Practice happens-before reasoning, ownership transfer, cancellation and liveness testing.

For the team: Review a worker primitive whose overload and shutdown behavior are predictable before it supports build or media workloads.

Evidence boundaries

Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.

Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.