Skip to main content

I/O contract assessment calibration

  • IO1: progress advances by returned positive count. Counts 3 and 2 yield prefix length 5, even if the next call fails. Restarting the full input would duplicate that prefix.
  • IO2: retry only the configured interruption result; EAGAIN returns to the caller, zero returns STALLED, and all attempts count toward the budget. A blocked call is not interrupted by the budget mechanism.
  • IO3: output matches the accepted input prefix, tests catch a wrong offset or requested-count advance, and a fresh schedule is independently reproduced. Inputs and borrowed state are not silently repurposed.
  • IO4: the helper closes nothing; the owning pipe test closes both ends. Explain every duplicate write reference before claiming EOF. Do not prescribe portable blind close retries.
  • IO5: actual compiler/flags, checks and sanitizer output. A tiny successful pipe does not establish arbitrary signal, backpressure, cancellation or durability behavior.
  • IO6: fresh trace after a delay, honest help record and bounded recovery claim. Resume a suffix only when destination state supports it; reconnecting does not automatically preserve the stream.

The six gates assess this extension, not all system-call or concurrency knowledge. Keep original process/thread/socket work and the required semester strand.