Sebastian Krause <sebast...@realpath.org> writes: > Eric Abrahamsen <e...@ericabrahamsen.net> wrote: >> This has been annoying people for a very long time, but I don't think >> there's any clean solution to the problem. Gnus doesn't actually know >> that you've suspended and woken your computer, so it doesn't have any >> reason to suspect the connections are down. I think we'd have to ping >> servers on a timer, or maybe run a clock in lisp and periodically check >> it against system time (to see if execution was suspended for a while). >> Nothing immediately presents itself as The Right Solution, so no one's >> done anything... > > I guess The Right Solution would be if Emacs would provide access to > the operating system's sleep/wake notifications (e.g. on macOS: > https://developer.apple.com/library/content/qa/qa1340/_index.html) > and tell Gnus about a system wakeup. Gnus could then just close all > connections each time it received such a notification. But it > doesn't look like there's anything like that in Emacs. > > The second best thing I can think of is TCP keepalive with much > lower values for tcp_keepalive_time and tcp_keepalive_intvl. Gnus > actually enables :keepalive in its network sockets (e.g. in nntp.el > and nnimap.el), but the default values for the first keepalive > package on Linux and Windows is two hours of inactivity, and even > then it will take more than 10 minutes of no response until the OS > actually closes the connection. It's actually possible to lower the > keepalive parameters per socket, but again it doesn't seem like > Emacs provides the possibility to do that in elisp.
You could raise both of these questions in emacs.devel and see what they say -- I don't know too much about it. My guess is that these questions have been discussed before, but I don't know off the top of my head. >> A lighter-weight solution than a full restart is using "z", for >> gnus-group-suspend. That will close all the servers, which will be >> re-opened the next time you "g". > > Weird, pressing "z" in the *Group* buffer just closes Gnus here. `gnus-group-suspend' closes all the servers *and* buries all Gnus buffers. It's lighter weight because, unlike "R", it won't have to re-read all your init files next time you get new news. I generally don't want my buffers buried, so I just use the code snippet I posted, in my own function. E _______________________________________________ info-gnus-english mailing list info-gnus-english@gnu.org https://lists.gnu.org/mailman/listinfo/info-gnus-english