internal/uevent: recoverable errors
All checks were successful
Test / Create distribution (push) Successful in 1m13s
Test / Sandbox (push) Successful in 3m1s
Test / Hakurei (push) Successful in 4m9s
Test / ShareFS (push) Successful in 4m17s
Test / Sandbox (race detector) (push) Successful in 5m36s
Test / Hakurei (race detector) (push) Successful in 6m42s
Test / Flake checks (push) Successful in 1m26s

This runs in the Rosa OS init, so recover as much as possible, as otherwise it is likely to require a full system reboot to resume event processing. The caller is responsible for reporting the error.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-03-27 22:58:16 +09:00
parent 2745602be3
commit 8766fddcb3
2 changed files with 6 additions and 0 deletions

View File

@@ -59,6 +59,9 @@ func (act KobjectAction) MarshalText() ([]byte, error) {
// not yet supported by this package.
type UnsupportedActionError string
var _ Recoverable = UnsupportedActionError("")
func (UnsupportedActionError) recoverable() {}
func (e UnsupportedActionError) Error() string {
return "unsupported kobject_action " + strconv.Quote(string(e))
}

View File

@@ -9,6 +9,9 @@ import (
"hakurei.app/internal/netlink"
)
// Recoverable is satisfied by errors that are safe to recover from.
type Recoverable interface{ recoverable() }
// Conn represents a NETLINK_KOBJECT_UEVENT socket.
type Conn struct{ conn *netlink.Conn }