multithreading_support.3coin4 - Man Page

Name

multithreading_support — Multithreading Support in Coin

The support in Coin for using multiple threads in application programs and the Coin library itself, consists of two main features:

The classes in question are SbThread, SbMutex, SbStorage, SbBarrier, SbCondVar, SbFifo, SbThreadAutoLock, SbRWMutex, and SbTypedStorage. See their respective documentation for the detailed information.

The classes fully hides the system-specific implementation, which is either done on top of native Win32 (if on Microsoft Windows), or over POSIX threads (on UNIX and UNIX-like systems).

Thread-safe render traversals are off by default, because there is a small overhead involved which would make rendering (very) slightly slower on single-threaded invocations.

To get a Coin library built with thread-safe rendering, one must actively re-configure Coin and build a special, local version. For configure-based builds (UNIX and UNIX-like systems, or with Cygwin on Microsoft Windows) this is done with the option '--enable-threadsafe' to Autoconf configure. To change the configuration and re-build with Visual Studio, you will need to change the preprocessor directive COIN_THREADSAFE to defined in the file src/setup.h located in the same folder as you found your solution file.

There are some restrictions and other issues which it is important to be aware of:

We are aware of at least issues with Qt3 (and thereby SoQt), where you should not modify the scene graph in any way in a thread separate from the main Qt thread. This because it will trigger operations where Qt3 is not thread-safe. For Qt4, we have not been aware of such problems.

Since

Coin 2.0

Info

Wed Jan 18 2023 Version 4.0.0 Coin