[vtkusers] Multi threading question

Clinton Stimpson clinton at elemtech.com
Thu Feb 26 10:13:16 EST 2009


How about locking/unlocking when you get the 
vtkCommand::StartEvent/vtkCommand::EndEvent from the vtkRenderWindow?
Then the locking is automatic no matter where Render() was called from.

Clint

Matthias Riechmann wrote:
> I have a similar question: When triggering all rendering by yourself 
> it is easy to protect VTK from concurrent access by using a mutex. But 
> how can I do that when using a QVtkWidget? In this case the rendering 
> might be triggered at any time from the GUI. Is there a way to do a 
> synchronisation from a application programmer's view in this scenario?
>
>
> Matthias
>
>
>
>
> David E DeMarle schrieb:
>> What you are doing is correct. VTK is not thread safe, so in general
>> you have to protect against concurrent access manually as you have
>> done.
>>
>> On Mon, Feb 23, 2009 at 10:51 PM, Anton Deguet <anton.deguet at jhu.edu> 
>> wrote:
>>> Hello,
>>>
>>> I have an application with one renderer and multiple actors.  Each 
>>> actor (assembly) is controlled by a different thread and all use a 
>>> single renderer (running in its own thread).  As a temporary 
>>> solution, I use an application wide mutex lock/unlock for any access 
>>> to VTK to avoid rendering while a thread is modifying the scene via 
>>> its actor (threads can modify anything; position, size, visibility, 
>>> opacity, texture, ... and other non atomic operations).  It somewhat 
>>> works but I am afraid one programmer might forget to lock/unlock the 
>>> scene before modifying its actors and this might be hard to 
>>> debug/detect.  I am also slightly concerned by long waiting periods 
>>> to lock the mutex as the application is growing.
>>>
>>> So, does VTK provide something better than what I am using, i.e. is 
>>> there any build-in thread safety mechanism that one can use 
>>> (multiple buffers, queued commands, ...) that would avoid locks.
>>>
>>> Thank you,
>>>
>>> Anton Deguet
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at 
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the VTK FAQ at: 
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>
>>
>>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>   





More information about the vtkusers mailing list