Q: vtkMultiThreader crash

Audrius Stundzia adv_biologic at excite.com
Fri Jul 2 10:07:48 EDT 1999


Hi Lisa,

Thanks for your detailed reply and suggestions.

I'm back with more questions :-) after celebrating Canada Day up here.

My problem is that at the end of a "typical" graphics pipeline that
displays
an isosurface, executing the interactor

anInteractor->Initialize();
anInteractor->Start();

transfers controls to the event loop and I can't do anything else until
I stop this loop. After looking at the vtkMultiThreader code and the 
gradient example, I thought that the following code fragment would allow 
me to spin off the interactor as a seperate thread:

static VTK_THREAD_RETURN_TYPE StartInteractor( void *arg) // Single
interactor thread
{ 
  vtkRenderWindowInteractor *interactor = (vtkRenderWindowInteractor *)arg;
  
  interactor->Initialize();
  interactor->Start();
  
  return VTK_THREAD_RETURN_VALUE;

}

and at the end of the graphics pipeline: 

   multiThreader->SetSingleMethod( StartInteractor
                                 , (void *) anInteractor );
                                 
   multiThreader->SingleMethodExecute();    

Everything compiles and links with no complaints, but when I execute the
code I get the following error message: 

fatal: relocation error: file ../libadvImage.so: symbol
SetSingleMethod__16vtkMultiThreaderPFPv_vPv: referenced symbol not found 

where .. reprensent a bunch of my subdirectories

Any insight would be most appreciated.

Best regards, 

Audrius

                         
     




On Thu, 01 Jul 1999 09:49:25 -0400, Lisa Sobierajski Avila wrote:

> 
> Hi Audrius,
> 
> You should not have a problem having several vtkRenderWindowInteractors
in
> the same thread - so you shouldn't need to worry about thread safeness
for
> that. As for your program going off and doing other stuff in another
thread
> it depends on what that other stuff is. I believe that on most platforms
> you can't use OpenGL from more than one thread at a time (definitely not
on
> the same context). If you are not doing OpenGL and not working on the
same
> objects that the interactors are displaying (or the entire pipeline up to
> that point) then everything is fine. If you are altering the pipelines or
> any of the objects in the pipelines from the other thread, then it will
be
> difficult or maybe even impossible without adding mutex calls to the code
> to guarantee that two threads don't collide.
> 
> Lisa
> 
> 
> At 02:25 PM 6/30/99 -0700, Audrius Stundzia wrote:
> >Hi Lisa,
> >
> >Thanks for your prompt reply. Much appreciated.
> >I'll have a look at the examples.
> >
> >Basically, I want to spin off several vtkRenderWindowInteractor objects
as
> >seperate threads so that I can interact with the windows while my
program
> >goes off and does other stuff. Doable?
> >
> >Best regards, 
> >
> >Audrius
> >
> >On Wed, 30 Jun 1999 15:23:03 -0400, Lisa Sobierajski Avila wrote:
> >
> >> Hello Audrius,
> >> 
> >> Work is being done to make the graphics pipeline as thread safe as
> >possible
> >> - this work is still in progress. You still (and probably always will)
> >have
> >> to be fairly careful about which data access methods you use within
> >> multi-threaded portions of vtk since we do not want to take the
> >performance
> >> hit of mutexing all data access.
> >> 
> >> A fairly simple example of how to use the vtkMultiThreader can be
found
> >in
> >> vtkFiniteDifferenceGradientEstimator - the structured points data set
is
> >> divided among the available processors. The threader is also used in
the
> >> image filter superclass to thread the imaging pipeline, and in the ray
> >> caster to thread the creation of ray casted images.
> >> 
> >> Lisa Avila
> >> lisa.avila at kitware.com
> >> 
> >> 
> >> 
> >> At 07:04 AM 6/30/99 -0700, Audrius Stundzia wrote:
> >> >Dear vtker's
> >> >
> >> >Looking at the vtk changes list, a great deal of work has recently
gone
> >> >into making the graphics pipeline multi-thead safe. Unfortunately, I
> >> >haven't been able to find any examples of how to use threads in a 
> >> >vtk context or how to use vtkMultiTreader. 
> >> >
> >> >As I'm on a Solaris, I'm using pthreads.
> >> >
> >> >Any help, especially example code, would be most appreciated.
> >> >
> >> >Regards,
> >> >
> >> >Audrius
> >> >
> >> >
> >> >
> >> >
> >> >_______________________________________________________
> >> >Get your free, private email at http://mail.excite.com/
> >> >
> >> >
> >>
>
>>--------------------------------------------------------------------------
-
> >--
> >> >This is the private VTK discussion list.  Please keep messages
on-topic.
> >> >Check the FAQ at: <http://www.automatrix.com/cgi-bin/vtkfaq>
> >> >To UNSUBSCRIBE, send message body containing "unsubscribe vtkusers"
to
> >> ><majordomo at gsao.med.ge.com>.  For help, send message body containing
> >> >"info vtkusers" to the same address.     Live long and prosper.
> >>
>
>>--------------------------------------------------------------------------
-
> >--
> >> > 
> >> 
> >> 
> >> 
> >>
>
>---------------------------------------------------------------------------
-
> >-
> >> This is the private VTK discussion list.  Please keep messages
on-topic.
> >> Check the FAQ at: <http://www.automatrix.com/cgi-bin/vtkfaq>
> >> To UNSUBSCRIBE, send message body containing "unsubscribe vtkusers" to
> >> <majordomo at gsao.med.ge.com>.  For help, send message body containing
> >> "info vtkusers" to the same address.     Live long and prosper.
> >>
>
>---------------------------------------------------------------------------
-
> >-
> >> 
> >
> >
> >
> >
> >
> >_______________________________________________________
> >Get your free, private email at http://mail.excite.com/
> 
> > 
> 
> 
> 
>
----------------------------------------------------------------------------
-
> This is the private VTK discussion list.  Please keep messages on-topic.
> Check the FAQ at: <http://www.automatrix.com/cgi-bin/vtkfaq>
> To UNSUBSCRIBE, send message body containing "unsubscribe vtkusers" to
> <majordomo at gsao.med.ge.com>.  For help, send message body containing
> "info vtkusers" to the same address.     Live long and prosper.
>
----------------------------------------------------------------------------
-
> 





_______________________________________________________
Get your free, private email at http://mail.excite.com/




More information about the vtkusers mailing list