diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-12-18 23:51:47 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-12-19 00:00:33 +0900 |
| commit | ce06b7b66386f592df26ca089b470cc5b40ecd39 (patch) | |
| tree | a01446a02bb544fc4adb2265e338c935fe7510b0 /internal/system | |
| parent | 08bdc68f3a00fadad3eb196d08f328722bc7504c (diff) | |
internal/pipewire: inform conn of blocking intent
The interface does not expose underlying kernel notification mechanisms. This change removes the need to poll in situations were the next call might block.
This is made cumbersome by the SyscallConn interface left over from a previous implementation, it will be replaced in a later commit as the current implementation does not make use of any net.Conn methods other than Close.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/system')
| -rw-r--r-- | internal/system/pipewire_test.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/internal/system/pipewire_test.go b/internal/system/pipewire_test.go index 9c4950c6..a39237f8 100644 --- a/internal/system/pipewire_test.go +++ b/internal/system/pipewire_test.go @@ -6,6 +6,7 @@ import ( "path" "syscall" "testing" + "time" "hakurei.app/container/stub" "hakurei.app/internal/acl" @@ -497,6 +498,12 @@ type stubPipeWireConn struct { curSendmsg int } +func (conn *stubPipeWireConn) MightBlock(timeout time.Duration) { + if timeout != 5*time.Second { + panic("unexpected timeout " + timeout.String()) + } +} + // Recvmsg marshals and copies a stubMessage prepared ahead of time. func (conn *stubPipeWireConn) Recvmsg(p, _ []byte, _ int) (n, _, recvflags int, err error) { defer func() { conn.curRecvmsg++ }() |
