Boost logo

Boost Users :

Subject: [Boost-users] Threads and virtual functions
From: Geoffrey (geoffrey_at_[hidden])
Date: 2011-07-06 18:19:14


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 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