Compare commits

...

2 Commits

Author SHA1 Message Date
Siyuan Miao 0bb3a6f3c2 chore: update comment for KEEPALIVE_INTERVAL 2025-09-12 10:41:40 +02:00
Siyuan Miao 67ea3c0432 chore: update logging for kbdAutoReleaseLock 2025-09-12 10:41:23 +02:00
3 changed files with 17 additions and 8 deletions

View File

@ -179,8 +179,9 @@ func (u *UsbGadget) SetOnKeysDownChange(f func(state KeysDownState)) {
}
func (u *UsbGadget) scheduleAutoRelease(key byte) {
u.log.Trace().Msg("scheduling autoRelease")
u.kbdAutoReleaseLock.Lock()
defer u.kbdAutoReleaseLock.Unlock()
defer unlockWithLog(&u.kbdAutoReleaseLock, u.log, "autoRelease scheduled")
if u.kbdAutoReleaseTimer != nil {
u.kbdAutoReleaseTimer.Stop()
@ -192,8 +193,9 @@ func (u *UsbGadget) scheduleAutoRelease(key byte) {
}
func (u *UsbGadget) cancelAutoRelease() {
u.log.Trace().Msg("cancelling autoRelease")
u.kbdAutoReleaseLock.Lock()
defer u.kbdAutoReleaseLock.Unlock()
defer unlockWithLog(&u.kbdAutoReleaseLock, u.log, "autoRelease cancelled")
if u.kbdAutoReleaseTimer != nil {
u.kbdAutoReleaseTimer.Stop()
@ -201,10 +203,9 @@ func (u *UsbGadget) cancelAutoRelease() {
}
func (u *UsbGadget) DelayAutoRelease() {
u.log.Trace().Msg("delaying autoRelease")
u.kbdAutoReleaseLock.Lock()
defer u.kbdAutoReleaseLock.Unlock()
u.log.Trace().Msg("delaying auto-release")
defer unlockWithLog(&u.kbdAutoReleaseLock, u.log, "autoRelease delayed")
if u.kbdAutoReleaseTimer == nil {
return
@ -216,8 +217,9 @@ func (u *UsbGadget) DelayAutoRelease() {
}
func (u *UsbGadget) performAutoRelease(key byte) {
u.log.Trace().Msg("performing autoRelease")
u.kbdAutoReleaseLock.Lock()
defer u.kbdAutoReleaseLock.Unlock()
defer unlockWithLog(&u.kbdAutoReleaseLock, u.log, "autoRelease performed")
select {
case <-u.keyboardStateCtx.Done():
@ -464,9 +466,10 @@ func (u *UsbGadget) keypressReport(key byte, press bool, autoRelease bool) (Keys
if press {
{
u.log.Trace().Msg("acquiring kbdAutoReleaseLock to update last key")
u.kbdAutoReleaseLock.Lock()
u.kbdAutoReleaseLastKey = key
u.kbdAutoReleaseLock.Unlock()
unlockWithLog(&u.kbdAutoReleaseLock, u.log, "last key updated")
}
if autoRelease {

View File

@ -9,6 +9,7 @@ import (
"path/filepath"
"strconv"
"strings"
"sync"
"time"
"github.com/rs/zerolog"
@ -164,3 +165,8 @@ func (u *UsbGadget) resetLogSuppressionCounter(counterName string) {
u.logSuppressionCounter[counterName] = 0
}
}
func unlockWithLog(lock *sync.Mutex, logger *zerolog.Logger, msg string, args ...any) {
logger.Trace().Msgf(msg, args...)
lock.Unlock()
}

View File

@ -104,7 +104,7 @@ export default function useKeyboard() {
}
};
const KEEPALIVE_INTERVAL = 75; // 200ms interval
const KEEPALIVE_INTERVAL = 75; // TODO: use an adaptive interval based on RTT later
const cancelKeepAlive = useCallback(() => {
if (keepAliveTimerRef.current) {