[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Written by Jorrit Tyberghein.
The Crystal Space project as such is not thread-safe. So when using threads in combination with Crystal Space you have to be careful. However, several parts of Crystal Space are thread-safe to some degree. This is documented in this section. However, by default you must assume that some Crystal Space plugin or module is not thread-safe unless it is mentioned here.
SCF_CREATE_INSTANCE()
and all the routines in `iSCF' that have
to do with loaded classes are safe.
csLoadPlugin
,
csLoadPluginAlways
, and csQueryPluginClass
are safe.
csQueryRegistry
are safe. The iObjectRegistryIterator
takes a copy of the data
over which it iterates so it will not even lock.
csRef<iConsoleOutput> con = ...; con->AutoUpdate(false); |
Note that by default auto-updating is enabled!
iLoaderContext
is not thread-safe which makes all loader
plugins unsafe by default.
One important threaded section of Crystal Space is the threaded loader. In order to ensure that the threaded loader works correctly you must make sure that you use thread-safe versions of the following modules in Crystal Space:
iReporter
(the standard reporter is okay).
iReporterListener
(the standard reporter listener is okay).
iConsoleOutput
(`simpcon' and `csconout' are okay provided
auto-updating is disabled).
iLoaderContext
(the threaded loader provides a thread-safe version
of this one).
iDocumentSystem
(TinyXML, XMLRead, and BinaryXML are all okay).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated using texi2html 1.76.