From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/42612 Path: main.gmane.org!not-for-mail From: Steinar Bang Newsgroups: gmane.emacs.gnus.general Subject: Re: db-backed mail back end Date: Sat, 26 Jan 2002 21:55:54 +0100 Organization: Denizens of Doom, Norway Chapter Sender: owner-ding@hpc.uh.edu Message-ID: <878zak6dd1.fsf@bang.priv.no> References: <87g04x7w4q.fsf@inanna.rimspace.net> NNTP-Posting-Host: coloc-standby.netfonds.no Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1035177833 12772 80.91.224.250 (21 Oct 2002 05:23:53 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Mon, 21 Oct 2002 05:23:53 +0000 (UTC) Return-Path: Original-Received: (qmail 13997 invoked from network); 26 Jan 2002 21:30:59 -0000 Original-Received: from malifon.math.uh.edu (mail@129.7.128.13) by mastaler.com with SMTP; 26 Jan 2002 21:30:59 -0000 Original-Received: from sina.hpc.uh.edu ([129.7.128.10] ident=lists) by malifon.math.uh.edu with esmtp (Exim 3.20 #1) id 16UaPL-0003WR-00; Sat, 26 Jan 2002 15:30:43 -0600 Original-Received: by sina.hpc.uh.edu (TLB v0.09a (1.20 tibbs 1996/10/09 22:03:07)); Sat, 26 Jan 2002 15:30:33 -0600 (CST) Original-Received: from sclp3.sclp.com (qmailr@sclp3.sclp.com [209.196.61.66]) by sina.hpc.uh.edu (8.9.3/8.9.3) with SMTP id PAA28910 for ; Sat, 26 Jan 2002 15:30:18 -0600 (CST) Original-Received: (qmail 13958 invoked by alias); 26 Jan 2002 21:30:17 -0000 Original-Received: (qmail 13952 invoked from network); 26 Jan 2002 21:30:17 -0000 Original-Received: from ingebrigtsen.no (HELO quimby2.netfonds.no) (195.204.10.66) by gnus.org with SMTP; 26 Jan 2002 21:30:17 -0000 Original-Received: from news by quimby2.netfonds.no with local (Exim 3.12 #1 (Debian)) id 16UaRT-0001Cn-00 for ; Sat, 26 Jan 2002 22:32:55 +0100 Original-To: ding@gnus.org Original-Path: not-for-mail Original-Newsgroups: gnus.ding Original-Lines: 41 Original-NNTP-Posting-Host: c96s55h3.upc.chello.no Original-X-Trace: quimby2.netfonds.no 1012080775 4632 213.46.211.96 (26 Jan 2002 21:32:55 GMT) Original-X-Complaints-To: usenet@quimby2.netfonds.no Original-NNTP-Posting-Date: 26 Jan 2002 21:32:55 GMT User-Agent: Gnus/5.090005 (Oort Gnus v0.05) Emacs/20.7 (i386-debian-linux-gnu) Cancel-Lock: sha1:yk6ulSrqScE7Av5jb5kr1eLjUP8= Precedence: list X-Majordomo: 1.94.jlt7 Xref: main.gmane.org gmane.emacs.gnus.general:42612 X-Report-Spam: http://spam.gmane.org/gmane.emacs.gnus.general:42612 >>>>> Simon Josefsson : > Don't compute things that you don't need. Entering a group should > be a call to `(switch-to-buffer (generate-new-buffer (format > "*Summary %s*" group))'. Populating the view should be incremental > and asynchronous. Threading should optionally be pushed down into > the backend (IMAP supports server-side threading, a database backend > could as well), with utility threading functionality in Gnus. Etc. You don't really need threading for this in Gnus/Emacs. You just need something with the conceptual model (_not_ the actual code), of W3C libwww. A short explanation of this model: - you create request objects for the URLs you wish to access and give them to the libwww. These request objects provide a context for the entire transaction - in the libwww the requests are put in a queue - the queue is handled by a timer: requests are picked up, and turned into actual network requests - at some point in time a request causes a response, ie. data start arriving on the wire. To handle this, a "stream" object for handling the response is created, and libwww stuffs the arriving data down this stream - when the request completes, the request object is created I've used libwww in a GUI-application, and the GUI event loop was the "engine" for the timer, and was handling input on open network connection. It all worked like a multihreaded application, but everything was happening inside a single thread. > Same goes for the group buffer, btw. It should be displayed > immediately, and updating status on groups should happen > asynchronously. Yup.