diff --git a/internal/services/hotkey_service.go b/internal/services/hotkey_service.go index 02064b4..a79a191 100644 --- a/internal/services/hotkey_service.go +++ b/internal/services/hotkey_service.go @@ -61,14 +61,16 @@ func (hs *HotkeyService) setCancelFunc(cancel context.CancelFunc) { // getCancelFunc 原子地获取cancel函数 func (hs *HotkeyService) getCancelFunc() context.CancelFunc { if cancel := hs.cancelFunc.Load(); cancel != nil { - return cancel.(context.CancelFunc) + if cancelFunc, ok := cancel.(context.CancelFunc); ok { + return cancelFunc + } } return nil } // clearCancelFunc 原子地清除cancel函数 func (hs *HotkeyService) clearCancelFunc() { - hs.cancelFunc.Store((*context.CancelFunc)(nil)) + hs.cancelFunc.Store((context.CancelFunc)(nil)) } // NewHotkeyService 创建热键服务实例 diff --git a/internal/services/hotkey_service_darwin.go b/internal/services/hotkey_service_darwin.go index 8c00cbd..342c71d 100644 --- a/internal/services/hotkey_service_darwin.go +++ b/internal/services/hotkey_service_darwin.go @@ -66,6 +66,7 @@ int isHotkeyRegistered() { import "C" import ( + "context" "fmt" "sync" "sync/atomic" @@ -115,14 +116,16 @@ func (hs *HotkeyService) setCancelFunc(cancel context.CancelFunc) { // getCancelFunc 原子地获取cancel函数 func (hs *HotkeyService) getCancelFunc() context.CancelFunc { if cancel := hs.cancelFunc.Load(); cancel != nil { - return cancel.(context.CancelFunc) + if cancelFunc, ok := cancel.(context.CancelFunc); ok { + return cancelFunc + } } return nil } // clearCancelFunc 原子地清除cancel函数 func (hs *HotkeyService) clearCancelFunc() { - hs.cancelFunc.Store((*context.CancelFunc)(nil)) + hs.cancelFunc.Store((context.CancelFunc)(nil)) } // NewHotkeyService 创建新的热键服务实例 diff --git a/internal/services/hotkey_service_linux.go b/internal/services/hotkey_service_linux.go index 3cd3c99..47d9307 100644 --- a/internal/services/hotkey_service_linux.go +++ b/internal/services/hotkey_service_linux.go @@ -179,14 +179,16 @@ func (hs *HotkeyService) setCancelFunc(cancel context.CancelFunc) { // getCancelFunc 原子地获取cancel函数 func (hs *HotkeyService) getCancelFunc() context.CancelFunc { if cancel := hs.cancelFunc.Load(); cancel != nil { - return cancel.(context.CancelFunc) + if cancelFunc, ok := cancel.(context.CancelFunc); ok { + return cancelFunc + } } return nil } // clearCancelFunc 原子地清除cancel函数 func (hs *HotkeyService) clearCancelFunc() { - hs.cancelFunc.Store((*context.CancelFunc)(nil)) + hs.cancelFunc.Store((context.CancelFunc)(nil)) } // NewHotkeyService 创建热键服务实例