[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: advice needed for multi-threading patch

From: Ken Raeburn
Subject: Re: advice needed for multi-threading patch
Date: Thu, 24 Sep 2009 18:47:16 -0400

On Sep 24, 2009, at 16:04, Tom Tromey wrote:
"Giuseppe" == Giuseppe Scrivano <address@hidden> writes:

That's wonderful.  Does that mean that Gnus really runs in its own
thread while you can do normal editing in other buffers?

Giuseppe> Yes, it does (except some errors). I am concentrating all my
Giuseppe> efforts on gnus, I think that if threads work well for gnus
Giuseppe> they will work quite well with any other package.

This is awesome.


It was this very problem that initially got me thinking about threads (and from that, it was just a hop, skip and a jump to Guile) years ago.

Giuseppe> At the moment it takes a lot to load folder, because there are Giuseppe> not enough yield on the other thread and probably gnus switch
Giuseppe> buffers too often (causing a yield).

I think we need to yield when a thread is waiting for I/O.

Yes, I think that needs to happen pretty much automatically. Perhaps it would be sufficient to make the Lisp functions that can cause process filters to be run also yield to other threads.

 And, we
probably need a way to associate a process filter with a thread, so that
whatever input Gnus gets is processed in the right thread.

Yes, and this is an area where Gnus could be changed to take advantage of it once the facility is a bit more stabilized. The output from one NNTP server can be processed into a list of newsgroups in one thread, while another thread converts IMAP output into a list of mailboxes, a third thread talks to yet another IMAP server, etc.

It might be interesting to look at Apple's Grand Central model, and see if something like that is practical to use in elisp with dynamic bindings...


reply via email to

[Prev in Thread] Current Thread [Next in Thread]