[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kmail-devel
Subject:    Re: PATCH: Asynchronous filtering
From:       Marc Mutz <mutz () kde ! org>
Date:       2003-10-27 21:13:51
[Download RAW message or body]

On Monday 27 October 2003 21:26, Ingo Klöcker wrote:
> On Monday 27 October 2003 19:37, Marc Mutz wrote:
<snip>
> The problem being that gpgme is still GPL licensed which would
> prevent a KDE abstraction of gpgme to be included in kdelibs. But we
> had this discussion before.

I don't see a problem. gpgme is so much more advanced than anything we 
could hammer together, and we already use it for OpenPGP/MIME and S/
MIME, that it would be foolish to prevent gpgme use b/c of it's GPL 
status. KDE impairs itself would it reject a kgpgme from inclusion in 
kdelibs.

But I was talking about KMail here. kpgp isn't in kdelibs, either, or is 
it?

<snip>

Ingo, I can't help you if you expressedly avoid to understand my 
arguments :-)

Ok, one last time:

> > You use threads iff
> > 1. The operation is parallelizable or, but not chunkable.
>
> Filtering is perfectly parallelizable.

_and_ chunkable...

> > and
> > 2. The operation takes a relatively long time
>
> You don't seem to be using spamassassin.

I do.

> Piping messages through 
> spamassassin takes an immense amount of time.

But it's not KMail that hogs the CPU, it's spamd and IO.

> > and
> > 3. The operation is mostly CPU-bound, not IO-bound
>
> It seems to be CPU-bound. At least my KMail is absolutely unusable
> while spamassassin scans a message.

Might that be due to the fact that we use the KProcess in blocking mode? 
>:-(

> > and
> > 4. KIO-slaves can't do the work
>
> A KIO-slave for "pipe through"? I don't think so. ;-)

No comment...

> > and
> > 5. The operation doesn't need to communicate much
>
> The "pipe through" filter action doesn't need to communicate at all
> except when it's finished.

Might that be due to the fact that we work with an external process 
already there? What _please_ could possibly be the point of using a 
QThread to pipe stuff to/from a KProcess operated in _blocking_ mode 
when KProcess can be used in _async_ mode, already?

> BTW, 2-5 also apply to OpenPGP operations. 1 also applies in case a
> message (e.g. a digest) consists of multiple signed text blocks/
> messages.

yeah, yeah. Of course if /KMail/ calls gpg in parallel, gpg will 
magically forget it's keyring locking and everything will be fine, 
won't it? But guess what? You can do that with multiple GpgmeCtx's 
_already_. Async. Non-blocking. Non-threaded. And if gpg finally get's 
it's server mode, KMail will automatically use it and be sped up due to 
reduced time spent in the keyring parsing code of gpg. :-o

Marc

-- 
It seems that the only thing worse than being an enemy of the US is
being a close friend and ally.
     -- John Horvath, "The Meaning of Friendship", Telepolis #14395
_______________________________________________
KMail Developers mailing list
kmail@mail.kde.org
http://mail.kde.org/mailman/listinfo/kmail

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic