mirror of https://github.com/jetkvm/kvm.git
chore: unlock keyboardStateLock before calling onKeysDownChange
This commit is contained in:
parent
2e1b6f199c
commit
867ed88c6e
|
@ -148,17 +148,20 @@ func (u *UsbGadget) GetKeysDownState() KeysDownState {
|
||||||
func (u *UsbGadget) updateKeyDownState(state KeysDownState) {
|
func (u *UsbGadget) updateKeyDownState(state KeysDownState) {
|
||||||
u.log.Trace().Interface("old", u.keysDownState).Interface("new", state).Msg("acquiring keyboardStateLock for updateKeyDownState")
|
u.log.Trace().Interface("old", u.keysDownState).Interface("new", state).Msg("acquiring keyboardStateLock for updateKeyDownState")
|
||||||
|
|
||||||
u.keyboardStateLock.Lock()
|
// this is intentional to unlock keyboard state lock before onKeysDownChange callback
|
||||||
defer u.keyboardStateLock.Unlock()
|
{
|
||||||
|
u.keyboardStateLock.Lock()
|
||||||
|
defer u.keyboardStateLock.Unlock()
|
||||||
|
|
||||||
if u.keysDownState.Modifier == state.Modifier &&
|
if u.keysDownState.Modifier == state.Modifier &&
|
||||||
bytes.Equal(u.keysDownState.Keys, state.Keys) {
|
bytes.Equal(u.keysDownState.Keys, state.Keys) {
|
||||||
return // No change in key down state
|
return // No change in key down state
|
||||||
|
}
|
||||||
|
|
||||||
|
u.log.Trace().Interface("old", u.keysDownState).Interface("new", state).Msg("keysDownState updated")
|
||||||
|
u.keysDownState = state
|
||||||
}
|
}
|
||||||
|
|
||||||
u.log.Trace().Interface("old", u.keysDownState).Interface("new", state).Msg("keysDownState updated")
|
|
||||||
u.keysDownState = state
|
|
||||||
|
|
||||||
if u.onKeysDownChange != nil {
|
if u.onKeysDownChange != nil {
|
||||||
u.log.Trace().Interface("state", state).Msg("calling onKeysDownChange")
|
u.log.Trace().Interface("state", state).Msg("calling onKeysDownChange")
|
||||||
(*u.onKeysDownChange)(state)
|
(*u.onKeysDownChange)(state)
|
||||||
|
|
Loading…
Reference in New Issue