BlockOnce now takes a value-reader and a signal source. The framework handles the blocking loop: read → compare hash to base → if different return → else wait on signal or timeout. On timeout (ctx.Done), returns empty (not error) so clients re-open cleanly. BlockOnceRaw retained for queue-style handlers (bypass/pending, proc/wait) that manage their own blocking. EventValue adapter wraps a <-chan Event into BlockOnce-compatible (readFn, signalFn) pair via a thin goroutine. |
||
|---|---|---|
| .. | ||
| internal | ||
| test | ||
| .gitignore | ||
| integration_test.go | ||
| main.go | ||
| p9.go | ||