aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/outcome
AgeCommit message (Collapse)Author
2025-11-02internal/outcome/shim: cover reparent and exit request pathsOphestra
These test cases were missed when making the changes. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-02internal/outcome/process: nil-safe unlock when failing to lockOphestra
This also prints a debug message which might be useful. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-02internal/outcome: measure finalise timeOphestra
This also increases precision of state time output. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-02internal/outcome/shim: EOF as exit request fallbackOphestra
In some cases the signal might be delivered before the signal handler is installed, and synchronising against such a case is too expensive. Instead, use the pipe being closed as a fallback to the regular exit request. This change also moves installation of the signal handler early. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-02internal/outcome/process: use new store interfaceOphestra
This change also spawns shim before committing system state, leaving it blocking on the setup pipe. The internal/outcome/process structure is also entirely reworked to be much more readable and less error-prone, while enabling basic performance measurements. A long-standing bug where segment lock is not held during Commit is also resolved. Closes #19. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-01internal/outcome/process: relocate start and serveOphestra
This is useful for reordering these operations for further cleanup. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-31internal/outcome: remove guard on mainOphestra
This is no longer exported. Such a check is pointless. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-31container/params: expose pipeOphestra
This increases flexibility of how caller wants to handle the I/O. Also makes it no longer rely on finalizer. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-30internal/store: rename compat interfaceOphestra
The new store implementation will be exported as Store. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-30internal/store: rename from stateOphestra
This reduces collision with local variable names, and generally makes sense for the new store package, since it no longer specifies the state struct. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-30internal/outcome/shim: check full behaviourOphestra
This took significant effort to stub out, and achieves full coverage after c5aefe5e9d. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-30internal/outcome/process: output via msgOphestra
This makes it possible to instrument output behaviour through stub. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-30internal/outcome/shim: move signal constantsOphestra
The magic numbers hurt readability. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-29internal/outcome/shim: remove noop resumeOphestra
The shim does not suspend output to begin with. These are leftovers from when container startup code suspends output. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-29internal/outcome/shim: params check earlyOphestra
This is unreachable, but keeping it here as a failsafe until more test cases are added. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-29internal/outcome: rename from appOphestra
This is less ambiguous, and more accurately describes the purpose of the package. Signed-off-by: Ophestra <cat@gensokyo.uk>