Boost logo

Boost Users :

Subject: Re: [Boost-users] Threads and virtual functions
From: Geoffrey (geoffrey_at_[hidden])
Date: 2011-07-07 04:39:39


Am 07.07.2011 00:19, schrieb Geoffrey:
>
> Hello,
> here is a simplified code I wrote:
>
> class A{
> public:
> A();
> ~A();
> void Run();
> void ThreadA();
> virtual void HandleSomething();
> };
>
> void A::HandleSomething()
> {
>
> }
>
> void A::ThreadA()
> {
> if(condition)
> {
> HandleSomething();
> }
> }
>
> void A::Run()
> {
> boost::thread thread(&A::ThreadA,this);
> }
>
> This is my base class. As you can see the thread calls the virtual
> function when the condition becomes true. I use the virtual function in
> my derived class so everytime the condition becomes true the function
> HandleSomething() should do something. So far, so good but when I try to
> change some variables in the derived class the program crashes without
> any warning or error message. I use the latest Ubuntu version with GCC
> 4.5.3 and boost 1.46.1.
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users

I do not call the virtual function in a constructor. I forgot to mention
that ThreadA never stops because it runs in a while loop.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net