mirror of https://github.com/jetkvm/kvm.git
Use Once instead of init()
This commit is contained in:
parent
faa35a4dca
commit
9fafcfb94c
13
jsonrpc.go
13
jsonrpc.go
|
|
@ -1078,15 +1078,20 @@ type RunningMacro struct {
|
||||||
var (
|
var (
|
||||||
keyboardMacroCancelMap map[uuid.UUID]RunningMacro
|
keyboardMacroCancelMap map[uuid.UUID]RunningMacro
|
||||||
keyboardMacroLock sync.Mutex
|
keyboardMacroLock sync.Mutex
|
||||||
|
keyboardMacroOnce sync.Once
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func getKeyboardMacroCancelMap() map[uuid.UUID]RunningMacro {
|
||||||
keyboardMacroCancelMap = make(map[uuid.UUID]RunningMacro)
|
keyboardMacroOnce.Do(func() {
|
||||||
|
keyboardMacroCancelMap = make(map[uuid.UUID]RunningMacro)
|
||||||
|
})
|
||||||
|
return keyboardMacroCancelMap
|
||||||
}
|
}
|
||||||
|
|
||||||
func addKeyboardMacro(isPaste bool, cancel context.CancelFunc) uuid.UUID {
|
func addKeyboardMacro(isPaste bool, cancel context.CancelFunc) uuid.UUID {
|
||||||
keyboardMacroLock.Lock()
|
keyboardMacroLock.Lock()
|
||||||
defer keyboardMacroLock.Unlock()
|
defer keyboardMacroLock.Unlock()
|
||||||
|
keyboardMacroCancelMap := getKeyboardMacroCancelMap()
|
||||||
|
|
||||||
token := uuid.New() // Generate a unique token
|
token := uuid.New() // Generate a unique token
|
||||||
keyboardMacroCancelMap[token] = RunningMacro{
|
keyboardMacroCancelMap[token] = RunningMacro{
|
||||||
|
|
@ -1099,6 +1104,7 @@ func addKeyboardMacro(isPaste bool, cancel context.CancelFunc) uuid.UUID {
|
||||||
func removeRunningKeyboardMacro(token uuid.UUID) {
|
func removeRunningKeyboardMacro(token uuid.UUID) {
|
||||||
keyboardMacroLock.Lock()
|
keyboardMacroLock.Lock()
|
||||||
defer keyboardMacroLock.Unlock()
|
defer keyboardMacroLock.Unlock()
|
||||||
|
keyboardMacroCancelMap := getKeyboardMacroCancelMap()
|
||||||
|
|
||||||
delete(keyboardMacroCancelMap, token)
|
delete(keyboardMacroCancelMap, token)
|
||||||
}
|
}
|
||||||
|
|
@ -1106,6 +1112,7 @@ func removeRunningKeyboardMacro(token uuid.UUID) {
|
||||||
func cancelRunningKeyboardMacro(token uuid.UUID) {
|
func cancelRunningKeyboardMacro(token uuid.UUID) {
|
||||||
keyboardMacroLock.Lock()
|
keyboardMacroLock.Lock()
|
||||||
defer keyboardMacroLock.Unlock()
|
defer keyboardMacroLock.Unlock()
|
||||||
|
keyboardMacroCancelMap := getKeyboardMacroCancelMap()
|
||||||
|
|
||||||
if runningMacro, exists := keyboardMacroCancelMap[token]; exists {
|
if runningMacro, exists := keyboardMacroCancelMap[token]; exists {
|
||||||
runningMacro.cancel()
|
runningMacro.cancel()
|
||||||
|
|
@ -1119,6 +1126,7 @@ func cancelRunningKeyboardMacro(token uuid.UUID) {
|
||||||
func cancelAllRunningKeyboardMacros() {
|
func cancelAllRunningKeyboardMacros() {
|
||||||
keyboardMacroLock.Lock()
|
keyboardMacroLock.Lock()
|
||||||
defer keyboardMacroLock.Unlock()
|
defer keyboardMacroLock.Unlock()
|
||||||
|
keyboardMacroCancelMap := getKeyboardMacroCancelMap()
|
||||||
|
|
||||||
for token, runningMacro := range keyboardMacroCancelMap {
|
for token, runningMacro := range keyboardMacroCancelMap {
|
||||||
runningMacro.cancel()
|
runningMacro.cancel()
|
||||||
|
|
@ -1131,6 +1139,7 @@ func reportRunningMacrosState() {
|
||||||
if currentSession != nil {
|
if currentSession != nil {
|
||||||
keyboardMacroLock.Lock()
|
keyboardMacroLock.Lock()
|
||||||
defer keyboardMacroLock.Unlock()
|
defer keyboardMacroLock.Unlock()
|
||||||
|
keyboardMacroCancelMap := getKeyboardMacroCancelMap()
|
||||||
|
|
||||||
isPaste := false
|
isPaste := false
|
||||||
anyRunning := false
|
anyRunning := false
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue