diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2024-05-30 18:28:02 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2024-05-30 18:28:02 -0400 |
commit | 0d7d835902dfaeaae03850fb37e369833bb5664d (patch) | |
tree | 8cd61f0c74342d20f9569c0541213ca20cb07727 /lisp/emacs-lisp/range.el | |
parent | baecf9bb283e52a829e31ae6f36c4687171a51c5 (diff) | |
download | emacs-0d7d835902dfaeaae03850fb37e369833bb5664d.tar.gz emacs-0d7d835902dfaeaae03850fb37e369833bb5664d.tar.bz2 emacs-0d7d835902dfaeaae03850fb37e369833bb5664d.zip |
server.el: Avoid nested runs of process filters (bug#71223)
In case we have a "storm" of emacsclient requests coming at the
same time, our process filters ended up running nested within
each other, eating up the stack and causing errors. Try and be
more careful with our use of `sit-for` in the process filter,
and make sure our process filters are run one at a time.
* lisp/server.el (server--message-sit-for): New function.
(server--process-filter-1): New function, extracted from
`server-process-filter`. Use `server--message-sit-for` to display the
messages and use `run-with-timer` to delay the `delete-process`.
(server--process-filter-pending, server--process-filter-active): New vars.
(server--process-filter-all-pending): New function.
(server-process-filter): Use them.
Diffstat (limited to 'lisp/emacs-lisp/range.el')
0 files changed, 0 insertions, 0 deletions