KStringHandler: stateless/reentrant/thread-safe?
Thiago Macieira
thiago at kde.org
Sun Oct 28 16:22:39 GMT 2012
On domingo, 28 de outubro de 2012 17.12.31, Frank Reininghaus wrote:
> The functions with statics are:
>
> 1. KStringHandler::isUtf8(const char *)
>
> http://api.kde.org/4.9-api/kdelibs-apidocs/kdecore/html/kstringhandler_8cpp_
> source.html#l00204
Do notice that it's static const POD. Since it's not modifying anything, it's
thread-safe. And stateless.
> 2. KStringHandler::from8Bit(const char *)
>
> http://api.kde.org/4.9-api/kdelibs-apidocs/kdecore/html/kstringhandler_8cpp_
> source.html#l00289
>
> The first one contains a static array of chars, which looks safe to
> me. The second has a static reference to a QString which is generated
> using KGlobal::staticQString(const char*). I'm not entirely sure if
> that is safe as well.
That's a static const non-POD created by a non-constexpr. That means it's
initialised on the first run.
It's thread-safe on GCC and C++11, but not on other conditions.
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Software Architect - Intel Open Source Technology Center
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20121028/590b1650/attachment.sig>
More information about the kde-core-devel
mailing list