Gnus development mailing list
 help / color / mirror / Atom feed
* IMAP and IDLE...
@ 2011-03-16 11:31 Lars Magne Ingebrigtsen
  2011-03-16 11:43 ` Greg Troxel
                   ` (3 more replies)
  0 siblings, 4 replies; 37+ messages in thread
From: Lars Magne Ingebrigtsen @ 2011-03-16 11:31 UTC (permalink / raw)
  To: ding

I was looking at Mail.app just now, and it is really appealing the way it
just updates all the stuff asynchronously.

I've been sceptical to supporting IDLE before, since you can only IDLE
on one mail box at a time.  But it just occurred to me that if you're
doing client-side splitting, just idling on the INBOX would suffice.

So, doing stuff asynchronously in Emacs is a major pain in the ass, and
it tends to hang Emacs spontaneously, especially when doing network
connects and stuff.

But here's my idea: We could open an extra connection to every IMAP
server (that we're doing client splits on).  We issue an IDLE on the
INBOX. If the connection goes away, we don't do anything asynchronously.
But otherwise, every time we get a new message in the INBOX, we run it
through the normal splitting methods and update the group buffer.

Since this will mostly be splitting one single message at a time, and we
only download the headers to do the splitting, this can probably be done
without hanging Emacs too badly.

Of course, updating the group buffer (and any summary buffer you have
open that gets a new message) from an async process will give you all
the same problems with buffer management (copying/yanking text etc) that
we see with the updated Date line, so we have to figure out how to fix
that problem generally.

(For viewers who have recently joined us -- updating text in the buffer
asynchronously (from timers and sentinels) is tricky, because we want to
avoid moving point and mark, even though they might be in the region
we're updating.  And there's some weird interaction between this and
transient-mark-mode.  We should aim to create a `with-no-buffer-change'
macro that we can run arbitrary buffer-altering functions inside of
safely.)

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




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

end of thread, other threads:[~2011-04-01 23:11 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-16 11:31 IMAP and IDLE Lars Magne Ingebrigtsen
2011-03-16 11:43 ` Greg Troxel
2011-03-16 13:46   ` Frank Schmitt
2011-03-16 13:53 ` Ted Zlatanov
2011-03-16 13:58   ` Lars Magne Ingebrigtsen
2011-03-16 14:37     ` Eric S Fraga
2011-03-17 18:08       ` Wes Hardaker
2011-03-17 18:31         ` Ted Zlatanov
2011-03-17 20:52           ` Wes Hardaker
2011-03-17 21:04             ` Ted Zlatanov
2011-03-18  8:51         ` Eric S Fraga
2011-03-18 14:36           ` Wes Hardaker
2011-03-18 16:00             ` Eric S Fraga
2011-03-19  0:28               ` Wes Hardaker
2011-03-21 10:57               ` Julien Danjou
2011-03-21 14:15                 ` Eric S Fraga
2011-03-16 14:20   ` Olivier Sirven
2011-03-16 14:28     ` Ted Zlatanov
2011-03-16 17:35       ` Lars Magne Ingebrigtsen
2011-03-16 18:48         ` Ted Zlatanov
2011-03-17 17:18           ` Lars Magne Ingebrigtsen
2011-03-17 17:31             ` Ted Zlatanov
2011-03-17 17:44               ` Lars Magne Ingebrigtsen
2011-03-17 18:24                 ` Ted Zlatanov
2011-03-16 14:13 ` Olivier Sirven
2011-03-16 17:37   ` Lars Magne Ingebrigtsen
2011-03-16 18:28     ` Olivier Sirven
2011-03-16 18:34       ` David Engster
2011-03-17 18:11     ` Wes Hardaker
2011-03-17 18:14       ` Lars Magne Ingebrigtsen
2011-03-17 20:53         ` Wes Hardaker
2011-03-29 19:14           ` Lars Magne Ingebrigtsen
2011-03-16 20:21 ` John Sullivan
2011-03-17 17:19   ` Lars Magne Ingebrigtsen
2011-03-17 20:30     ` James Cloos
2011-03-29 19:13       ` Lars Magne Ingebrigtsen
2011-04-01 23:11         ` John Sullivan

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).