mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-04-26 08:10:47 -07:00
Ensure that we don't have several timers in erc
* lisp/erc/erc-backend.el (erc-server-setup-periodical-ping): Checks for existing timers in the alist before adding new ones. If a timer already exists, it is cancelled and overwritten. (bug#19292).
This commit is contained in:
parent
85c1843f65
commit
2cd894dc34
1 changed files with 13 additions and 3 deletions
|
|
@ -493,9 +493,19 @@ The current buffer is given by BUFFER."
|
|||
4 erc-server-send-ping-interval
|
||||
#'erc-server-send-ping
|
||||
buffer))
|
||||
(setq erc-server-ping-timer-alist (cons (cons buffer
|
||||
erc-server-ping-handler)
|
||||
erc-server-ping-timer-alist)))))
|
||||
|
||||
;; I check the timer alist for an existing timer. If one exists,
|
||||
;; I get rid of it
|
||||
(let ((timer-tuple (assq buffer erc-server-ping-timer-alist)))
|
||||
(if timer-tuple
|
||||
;; this buffer already has a timer. Cancel it and set the new one
|
||||
(progn
|
||||
(erc-cancel-timer (cdr timer-tuple))
|
||||
(setf (cdr (assq buffer erc-server-ping-timer-alist)) erc-server-ping-handler))
|
||||
|
||||
;; no existing timer for this buffer. Add new one
|
||||
(add-to-list 'erc-server-ping-timer-alist
|
||||
(cons buffer erc-server-ping-handler)))))))
|
||||
|
||||
(defun erc-server-process-alive (&optional buffer)
|
||||
"Return non-nil when BUFFER has an `erc-server-process' open or running."
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue