Ho anche imbattuto in una situazione simile, dove volevo uccidere un temporizzatore ho iniziato con:
(setq my-timer (run-with-timer 5 5 'my-func))
Tuttavia,
(cancel-timer my-timer)
non funzionava perché ha detto my-timer non era set (non so perché questo stava accadendo).
Oltre al metodo del primo manifesto, che possono essere uccisi con:
(cancel-function-timers 'my-func)
Questo annulla tutti i timer chiamando la funzione 'my-func.
di ucciderlo alterando temporizzatore-list, che ho anche provato, ho fatto quanto segue:
(length timer-list) ;; I had two timers..one good, one bad
(cdr timer-list) ;; I verified the last was the one I wanted to keep
(setq timer-list (cdr timer-list)) ;; I reset timer-list
Ovviamente, questa struttura della lista può variare, quindi dovrete regolare di conseguenza. Sostituisci "timer-idle-list" se hai avviato il timer con (run-with-idle-timer)
Questo dovrebbe funzionare anche se hai iniziato il timer con 'gamegrid-start-timer e' gamegrid-kill-timer non funziona, dal momento che 'GameGrid-start-timer è essenzialmente solo un wrapper per' gestito con timer