|[ < ]||[ > ]||[ << ]||[ Up ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]||[ Search: ]|
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.
csQueryRegistryare safe. The
iObjectRegistryIteratortakes 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!
iLoaderContextis 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 ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]|
This document was generated using texi2html 1.76.