VMime: C++ Mail Library

Development

Entries feed - Comments feed

Tuesday, November 3 2009

Major bug fixes

Hello VMime users!

Thanks to László Vadócz, a possible segfault in stringUtils::countASCIIchars() has been fixed. A patch is available.

There was another major issue with body contents not generating when using streamContentHandler: EOF condition was not reset correctly when stream::reset() was called. The patch is available here.

Saturday, June 13 2009

Build against libgnutls >= 2.8

VMime 0.9.0 autoconf build process uses the libgnutls-config script to search for GNU TLS (by using AM_PATH_LIBGNUTLS). This script is deprecated and not shipped in gnutls 2.8.0 and later; pkg-config should now be used. Andreas Metzler provided a patch for fixing this.

Tuesday, July 8 2008

Is VMime thread-safe?

VMime is thread-safe in the sense you can have multiple threads running VMime code at the same time.

What you may NOT do is to share VMime objects (for writing) between threads. For example, you should NOT modify the same bodyPart object from two threads at the same time (reading is OK) unless you write your own synchronization mechanism between the calls.

If you are using the messaging module, it is OK to access multiple mailboxes (store objects) from multiple threads (each thread accesses one mailbox).

The rest of the code (parser, utils, etc.) is thread-safe as long as (again...) you don't share the objects (body parts, mailboxes, etc.) between multiple threads.

There are some singleton objects in VMime. There is absolutely no problem when instanciating a VMime singleton for the first time within multi-threaded code. Instanciation of all singletons is forced when VMime is initialized (static code, executed before your main()).

Current Version

0.9.0 (2008/10/19)

Download
ChangeLog