add lock to usb state

This commit is contained in:
Siyuan 2025-09-26 13:21:47 +00:00
parent c166602481
commit 99a05dbc88
1 changed files with 9 additions and 1 deletions

10
usb.go
View File

@ -1,6 +1,7 @@
package kvm package kvm
import ( import (
"sync"
"time" "time"
"github.com/jetkvm/kvm/internal/usbgadget" "github.com/jetkvm/kvm/internal/usbgadget"
@ -77,7 +78,10 @@ func rpcGetKeysDownState() (state usbgadget.KeysDownState) {
return gadget.GetKeysDownState() return gadget.GetKeysDownState()
} }
var usbState = "unknown" var (
usbState = "unknown"
usbStateLock sync.Mutex
)
func rpcGetUSBState() (state string) { func rpcGetUSBState() (state string) {
return gadget.GetUsbState() return gadget.GetUsbState()
@ -94,7 +98,11 @@ func triggerUSBStateUpdate() {
} }
func checkUSBState() { func checkUSBState() {
usbStateLock.Lock()
defer usbStateLock.Unlock()
newState := gadget.GetUsbState() newState := gadget.GetUsbState()
if newState == usbState { if newState == usbState {
return return
} }