From 4c12783107c6be133b24ab41425a8eae4192d808 Mon Sep 17 00:00:00 2001 From: Alex P Date: Wed, 1 Oct 2025 21:20:30 +0300 Subject: [PATCH] [WIP] Updates: reduce PR complexity --- .golangci.yml | 1 - .vscode/settings.json | 3 +-- display.go | 14 ++++++++++---- internal/usbgadget/hid_keyboard.go | 3 ++- internal/usbgadget/hid_mouse_absolute.go | 3 ++- internal/usbgadget/hid_mouse_relative.go | 5 +++-- terminal.go | 5 ----- 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 88813c10..dd8a0794 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -42,4 +42,3 @@ formatters: - third_party$ - builtin$ - examples$ - diff --git a/.vscode/settings.json b/.vscode/settings.json index 25a561f0..a86e6b63 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,6 +3,5 @@ "cva", "cx" ], - "git.ignoreLimitWarning": true, - "cmake.ignoreCMakeListsMissing": true + "git.ignoreLimitWarning": true } \ No newline at end of file diff --git a/display.go b/display.go index fb8e7d6c..b414a353 100644 --- a/display.go +++ b/display.go @@ -326,8 +326,11 @@ func startBacklightTickers() { dimTicker = time.NewTicker(time.Duration(config.DisplayDimAfterSec) * time.Second) go func() { - for range dimTicker.C { - tick_displayDim() + for { //nolint:staticcheck + select { + case <-dimTicker.C: + tick_displayDim() + } } }() } @@ -337,8 +340,11 @@ func startBacklightTickers() { offTicker = time.NewTicker(time.Duration(config.DisplayOffAfterSec) * time.Second) go func() { - for range offTicker.C { - tick_displayOff() + for { //nolint:staticcheck + select { + case <-offTicker.C: + tick_displayOff() + } } }() } diff --git a/internal/usbgadget/hid_keyboard.go b/internal/usbgadget/hid_keyboard.go index 99fa2887..74cf76f9 100644 --- a/internal/usbgadget/hid_keyboard.go +++ b/internal/usbgadget/hid_keyboard.go @@ -321,7 +321,8 @@ func (u *UsbGadget) keyboardWriteHidFile(modifier byte, keys []byte) error { _, err := u.writeWithTimeout(u.keyboardHidFile, append([]byte{modifier, 0x00}, keys[:hidKeyBufferSize]...)) if err != nil { u.logWithSuppression("keyboardWriteHidFile", 100, u.log, err, "failed to write to hidg0") - // Keep file open on write errors to reduce I/O overhead + u.keyboardHidFile.Close() + u.keyboardHidFile = nil return err } u.resetLogSuppressionCounter("keyboardWriteHidFile") diff --git a/internal/usbgadget/hid_mouse_absolute.go b/internal/usbgadget/hid_mouse_absolute.go index 1dd01256..374844f1 100644 --- a/internal/usbgadget/hid_mouse_absolute.go +++ b/internal/usbgadget/hid_mouse_absolute.go @@ -77,7 +77,8 @@ func (u *UsbGadget) absMouseWriteHidFile(data []byte) error { _, err := u.writeWithTimeout(u.absMouseHidFile, data) if err != nil { u.logWithSuppression("absMouseWriteHidFile", 100, u.log, err, "failed to write to hidg1") - // Keep file open on write errors to reduce I/O overhead + u.absMouseHidFile.Close() + u.absMouseHidFile = nil return err } u.resetLogSuppressionCounter("absMouseWriteHidFile") diff --git a/internal/usbgadget/hid_mouse_relative.go b/internal/usbgadget/hid_mouse_relative.go index 722784b9..070db6e8 100644 --- a/internal/usbgadget/hid_mouse_relative.go +++ b/internal/usbgadget/hid_mouse_relative.go @@ -60,14 +60,15 @@ func (u *UsbGadget) relMouseWriteHidFile(data []byte) error { var err error u.relMouseHidFile, err = os.OpenFile("/dev/hidg2", os.O_RDWR, 0666) if err != nil { - return fmt.Errorf("failed to open hidg2: %w", err) + return fmt.Errorf("failed to open hidg1: %w", err) } } _, err := u.writeWithTimeout(u.relMouseHidFile, data) if err != nil { u.logWithSuppression("relMouseWriteHidFile", 100, u.log, err, "failed to write to hidg2") - // Keep file open on write errors to reduce I/O overhead + u.relMouseHidFile.Close() + u.relMouseHidFile = nil return err } u.resetLogSuppressionCounter("relMouseWriteHidFile") diff --git a/terminal.go b/terminal.go index 24622dfd..e06e5cdc 100644 --- a/terminal.go +++ b/terminal.go @@ -6,7 +6,6 @@ import ( "io" "os" "os/exec" - "runtime" "github.com/creack/pty" "github.com/pion/webrtc/v4" @@ -34,10 +33,6 @@ func handleTerminalChannel(d *webrtc.DataChannel) { } go func() { - // Lock to OS thread to isolate PTY I/O - runtime.LockOSThread() - defer runtime.UnlockOSThread() - buf := make([]byte, 1024) for { n, err := ptmx.Read(buf)