
Hello Tobias,
Another potential issue: It seems Win32 and MacOS variants are currently not exception-safe. That is, the initialization routine isn't rerun if it has thrown the first time 'once' was called.
Yep, thanks for spotting that. I'll fix that in a couple of days and update the library archive in the Vault. I'll post here a notification when it's done.
Looking forward to it!
Ok, I reworked the lightweight call_once implementations for most of the supported platforms. Changes include: - Removed lexical_cast and iostreams. - Added Vista API support. This implementation does not emulate mutex by sleeping, thus improving performance. - Fixed exception safety issues. - Explicit memory barriers usage is now enabled by default (if the appropriate support is discovered during compilation). The implementation is uploaded to the Vault and available through the same URL: http://tinyurl.com/yjozfn Since there were major changes, I would really appreciate if someone experienced take a look at it. -- Best regards, Andrey mailto:andysem@mail.ru