Gnus development mailing list
 help / color / mirror / Atom feed
* Asynchronous backend interface
@ 1997-11-07  7:28 Greg Stark
  1997-11-13 21:19 ` Lars Magne Ingebrigtsen
  0 siblings, 1 reply; 2+ messages in thread
From: Greg Stark @ 1997-11-07  7:28 UTC (permalink / raw)



Wouldn't it be wonderful if you could check for new news while editting a
buffer. Or Gnus was capable of querying more than one backend at the same
time? Or if you could be reading one group while generating a particularly
large summary buffer at the same time?

All these things really are possible, though some might not be good ideas :)
*** They do NOT require a multi-threaded elisp interpreter. ***
Honest.

Half the job is already done when nntp.el was restructured to support
asynchronous prefetches. The problem is currently that the interface between
Gnus and its backends is inherently synchronous. It needs to be changed to
pass a callback function and a closure datum to the backend functions. Then
they could optionally return without the requested data, implicitly promising
to call the callback function when it becomes available.

I've proven such a feature would be great, the current development of my nndsc
backend enters a recursive edit during long operations. The ability to
continue to use my Emacs while they go on is incredibly useful. I don't think
it would be a good idea to use this approach in multiple backends though. 

If you don't believe me that this would be possible check the archives for the
two previous times i've proposed this, the first would be near the September
Gnus code freeze, and the second sometime during Red Gnus development.

It wouldn't be useful for everyone all the time. If you have a very fast
network connection your emacs might be unresponsive handling i/o. But if you
have a handful of slow foreign servers it would be very useful to scan them
while also getting all the quick stuff at the same time. If you have a slow
network connection it would just be nice to be able to download large summary
buffers without locking up your emacs while they download.

greg





^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Asynchronous backend interface
  1997-11-07  7:28 Asynchronous backend interface Greg Stark
@ 1997-11-13 21:19 ` Lars Magne Ingebrigtsen
  0 siblings, 0 replies; 2+ messages in thread
From: Lars Magne Ingebrigtsen @ 1997-11-13 21:19 UTC (permalink / raw)


Greg Stark <gsstark@MIT.EDU> writes:

> Wouldn't it be wonderful if you could check for new news while editting a
> buffer. Or Gnus was capable of querying more than one backend at the same
> time? Or if you could be reading one group while generating a particularly
> large summary buffer at the same time?

[...]

> If you don't believe me that this would be possible check the
> archives for the two previous times i've proposed this, the first
> would be near the September Gnus code freeze, and the second
> sometime during Red Gnus development.

Oops.  I think Quassia Gnus just went into feature freeze.  :-)

> It wouldn't be useful for everyone all the time. If you have a very fast
> network connection your emacs might be unresponsive handling i/o. But if you
> have a handful of slow foreign servers it would be very useful to scan them
> while also getting all the quick stuff at the same time. If you have a slow
> network connection it would just be nice to be able to download large summary
> buffers without locking up your emacs while they download.

Yes, it would be nice, but it will be quite a bit of work to get it to
work ok.  It's something I can't do anytime soon.

(The code freeze thing was a joke, though.)

-- 
(domestic pets only, the antidote for overdose, milk.)
  larsi@gnus.org * Lars Magne Ingebrigtsen


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1997-11-13 21:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-11-07  7:28 Asynchronous backend interface Greg Stark
1997-11-13 21:19 ` Lars Magne Ingebrigtsen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).