Notice to GitKraken users: A vulnerability has been found in the SSH key generation of GitKraken versions 7.6.0 to 8.0.0 (https://www.gitkraken.com/blog/weak-ssh-key-fix). If you use GitKraken and have generated a SSH key using one of these versions, please remove it both from your local workstation and from your LRZ GitLab profile.

21.10.2021, 9:00 - 11:00: Due to updates GitLab may be unavailable for some minutes between 09:00 and 11:00.

Commit 8671e65c authored by Christian Schulte zu Berge's avatar Christian Schulte zu Berge
Browse files

Introducing sigslot::concurrent_pointer_list<T> a list-like container allowing...

Introducing sigslot::concurrent_pointer_list<T> a list-like container allowing thread-safe bidirectional iteration, insertion and removal of elements. Single constraint is that the element type must be a pointer type (or at least have pointer semantics) and never be 0. This is neat, as this class offers exactly what we need for a lock-free sigslot implementation.

Updated sigslot implementation to use concurrent_pointer_list for connection storage. Hence, we can get rid of the locking mechanisms, which got completely removed.

Since this simplified template definitions for sigslot, many campvis files needed to be adapted (i.e. removing the <> from has_slots<> and signal0<>).

refs #384

Conflicts:
	core/classification/genericgeometrytransferfunction.h
	core/eventhandlers/trackballnavigationeventlistener.h
	core/pipeline/processordecoratormasking.h
	core/properties/propertycollection.h
	core/properties/transferfunctionproperty.h
	core/tools/opengljobprocessor.h
parent c6b558b1
......@@ -69,7 +69,7 @@ namespace campvis {
*
* This class is to be considered as thread-safe.
*/
class CAMPVIS_CORE_API OpenGLJobProcessor : public tgt::Singleton<OpenGLJobProcessor>, public tgt::Runnable, public sigslot::has_slots<> {
class CAMPVIS_CORE_API OpenGLJobProcessor : public tgt::Singleton<OpenGLJobProcessor>, public tgt::Runnable, public sigslot::has_slots {
friend class tgt::Singleton<OpenGLJobProcessor>;
public:
......
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment