Re: Todo list continued



On Thu, 18 Nov 1999, you wrote:
>I am definitely interested in seeing what you have done. Send a patch along at
>your leisure. (Unfortunately, I will have a real busy week, but I'll see what
>time I can put in).

I'm a bit stumped, for the reasons I mentioned, regarding updating the inbox
(Spoolfile) while the main GUI is un-frozen.  I've reviewed the CVS version
today, and tracked back up the chain to the check_new_messages_cb() function,
which handles calling down thru another layer to the mutt_fetchPopMail()
function.  The check_new_messages_cb() function *depends on* the lower
functions "blocking" the main GUI until the download is complete, at which time
it performs a mailbox_check_new_messages() call, which I am presuming updates
the GUI.  check_new_messages_cb() also shows it's own dialog, which I will
remove in my patch when/if I get it done.

>As I see it threading is one of the big things I want to do with Balsa, although
>there are always little things, so it might be a while til threading is implemented
>fully. But when that time comes, we are going to have a multithread receiver, or
>die in the attempt :-)

Using a finite-state implementation of the receiver (and sender) controlled as
one or more gdk_input functions, I don't NEED to multi-thread to get the
benefits of a fully non-blocking GUI.  Finite state machines are easier to
debug and much more tolerant of error conditions (if properly written) than a
"normal" procedural protocol implementation, and IMHO easier to debug than
threaded programs.

Why bother with a multithread receiver if it's going to kill us?  ;-)

The main problem is, that the main GUI needs to handle mailboxes in a
threadsafe fashion (more or less) for my POP3 reader to work in parallel with
it.  I need a simple way to put a message in a mailbox while the mailbox is
being displayed on the screen, and have the message immediately added to the
on-screen folder.

Well, it doesn't have to be "simple," just "explainable."



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