Hi Matthew,

On Wed, 2009-11-18 at 14:07 -0500, Matthew Barnes wrote:
> With work on Bonobo removal wrapping up, I've finally started taking a
> closer look at Camel (Evolution's mail storage and networking library)

        Ah - another life-time of cleaning up, and polishing code: the goal
sounds really nice.

> This is a distant future goal and will have to happen gradually, but I
> would like Camel to shift to a single-threaded design where all file and
> network operations directly use or are derived from GIO's asynchronous
> file and stream APIs.

        Hmm; you really propose to remove all threading from camel's
implementation ? or just from it's API ? a full removal might be
problematic.

        While clearly threading, if done in an un-constrained way, has it's own
peculiar problems - there are a couple of obvious advantages:

        First debugging - while both async and threaded programming loose
determinism due to event re-ordering - the debugger at least understands
threads - and can hopefully show you your state in a reasonably
follow-able way - you can step through slow/blocking calls with 'next',
'finish' etc.; I worry about a world packed with highly granular
asynchronous state-machines, all chained together - with no good way to
see what is happening, what state everything is in, and (of course) why
the app is serenely inactive in it's mainloop suddenly ;-)

        Secondly - of course, a fully async mode potentially would loose any
(possible) benefit of parallelism that in theory threads can provide -
in this world of dual-core laptop CPUs, and even hyper-threaded Atoms.

        OTOH - I'm sure you know what you're doing ;-)

        ATB,

                Michael.

-- 
 michael.me...@novell.com  <><, Pseudo Engineer, itinerant idiot

_______________________________________________
Evolution-hackers mailing list
Evolution-hackers@gnome.org
http://mail.gnome.org/mailman/listinfo/evolution-hackers

Reply via email to