Can Q_GLOBAL_STATIC replace KStaticDelete ?
Thiago Macieira
thiago at kde.org
Thu Jan 18 19:43:52 GMT 2007
Matthias Kretz wrote:
>/me leans towards dropping thread safety for K_GLOBAL_STATIC. Use
>Q_GLOBAL_STATIC if you want thread safety or if we really shouldn't use
>Q_GLOBAL_STATIC like Simon wrote, create a K_GLOBAL_STATIC_THREADSAFE
> (or so).
Simon also said we can use QBasicAtomicPointer, so we can implement the
thread-safety if we want.
I propose instead the following:
K_GLOBAL_STATIC, with the same semantics as Q_GLOBAL_STATIC (i.e.,
thread-safe), but with an extra parameter: an enum. The enum indicates
when the destruction should happen.
For example:
K_GLOBAL_STATIC(QStringList, names, KDE::DestroyOnExit)
K_GLOBAL_STATIC(KInstance, instance, KDE::DestroyWithApplication)
K_GLOBAL_STATIC(KSomething, something, KDE::DestroyWithInstance)
Another reason why I oppose destruction-with-application or instance: what
happens if the application restarts? It can happen in some cases in which
the same process creates and destroys QCoreApplication more than once.
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070118/467a5c33/attachment.sig>
More information about the kde-core-devel
mailing list