1. 27 Jul, 2014 7 commits
    • Christian Schulte zu Berge's avatar
      * Updated sigslot::concurrent_pointer_list::insert() and... · ea84b740
      Christian Schulte zu Berge authored
      * Updated sigslot::concurrent_pointer_list::insert() and sigslot::concurrent_pointer_list::push_back() to fill holes where items already have been deleted. This avoids degrading performance due to excessive fragmentation.
      * Updated sigslot legal header.
      ea84b740
    • Christian Schulte zu Berge's avatar
      Updated sigslot::concurrent_pointer_list implementation as well as added... · 698b2583
      Christian Schulte zu Berge authored
      Updated sigslot::concurrent_pointer_list implementation as well as added several typename declarations to calm down GCC.
      698b2583
    • Christian Schulte zu Berge's avatar
      Removed unlockInExtraThread flag from AbstractProcessor::process() - this is... · 4700bbba
      Christian Schulte zu Berge authored
      Removed unlockInExtraThread flag from AbstractProcessor::process() - this is no longer needed as signal handling is done asynchroneously now anyway.
      
      #ref 384
      
      Conflicts:
      	core/pipeline/abstractprocessor.cpp
      
      Conflicts:
      	core/pipeline/abstractprocessor.cpp
      	core/pipeline/abstractprocessor.h
      4700bbba
    • Christian Schulte zu Berge's avatar
      Introducing sigslot::concurrent_pointer_list<T> a list-like container allowing... · 8671e65c
      Christian Schulte zu Berge authored
      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
      8671e65c
    • Christian Schulte zu Berge's avatar
      * Introduced check whether signal emitting thread is the signal manager... · c6b558b1
      Christian Schulte zu Berge authored
      * Introduced check whether signal emitting thread is the signal manager thread. In such a case signals are now emitted synchronously per default.
      * Fixed sigslot shared library builds
      
      refs #384
      c6b558b1
    • Christian Schulte zu Berge's avatar
      Further work on asynchroneous sigslot implementation: · d434e54b
      Christian Schulte zu Berge authored
      * implemented signal_handle2 through signal_handl5
      * removed all implementations of signals with more than 5 arguments (nobody needs that many args and all those template instantiations just kill compile time)
      
      refs #384
      
      Conflicts:
      	ext/sigslot/sigslot.h
      d434e54b
    • Christian Schulte zu Berge's avatar
      Started working on Issue implementing asynchroneous signals with signalslot: · 30e14065
      Christian Schulte zu Berge authored
      * Moved campvis::Runnable interface to tgt namespace (since it's needed by sigslot, which only depends on tgt)
      * Introduced sigslot::signal_manager singleton class that will manage the dispatching of signals in its own thread
      * Started proof-of-concept implementation of asynchroneous signals for signal0<> and signal1<>. Both classes define their own signal_handleN deriving from _signal_handle_base, which defines the signal to dispatch.
      
      Proof-of-concept implementation seems to work so far.
      
      refs #384
      
      Conflicts:
      	core/tools/opengljobprocessor.h
      	ext/tgt/runnable.h
      
      Conflicts:
      	application/CMakeLists.txt
      	core/tools/opengljobprocessor.h
      30e14065
  2. 15 Jul, 2014 1 commit
    • Christian Schulte zu Berge's avatar
      Fixed GCC compatability of scripting module: · 92c3bdef
      Christian Schulte zu Berge authored
      * CMake build files now support unix builds
      * SWIG interface files and Lua wrappers are now fully C++ compliant to comfort GCC
      * Hacked shared/static builds of the campvis-modules module even more, but now it works on both MSVC and GCC
      92c3bdef
  3. 10 May, 2014 1 commit
    • Artur Grunau's avatar
      Add support for all signal arities to SWIG wrappers for siglot · 9ee1138f
      Artur Grunau authored
      SWIG wrappers for siglot only supported unary signals until now. This
      commit adds support for all remaining signal arities to make it possible
      to connect to arbitrary signals from Lua.
      
      The implementation makes heavy use of templates but, due to the
      limitations of VS 2010 (no variadic templates), still contains lots of
      duplicated boilerplate code.
      
      `sigslot.i` has been moved from `scripting/` to `ext/sigslot/` to keep
      it close to the code it's wrapping.
      
      References #1
      9ee1138f
  4. 04 Apr, 2014 1 commit
  5. 08 Oct, 2013 1 commit
  6. 16 Aug, 2013 1 commit
  7. 09 May, 2013 1 commit
  8. 31 Oct, 2012 1 commit