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:
> 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.
info-gnus-english mailing list