|
Boost Users : |
From: kaliwanagan_at_[hidden]
Date: 2007-08-25 17:24:43
On Saturday 25 August 2007 23:46:53 Darren Garvey wrote:
> On 25/08/07, Nat Goodspeed <nat.goodspeed_at_[hidden]> wrote:
> > At 09:51 AM 8/25/2007, kaliwanagan wrote:
> > >I was just curious as to why the class destructor are (apparently)
> > >being called multiple times. I have tried searching the archives to no
> > >avail (which prompted me to register and post to the mailinglist).
> >
> > Try defining an explicit copy constructor with a message like the
> > others. I believe the issue is that your object is being passed by
> > value, and being copied a few times along the way. You're not seeing
> > your no-args constructor message because the other new instances are
> > invoking the copy constructor.
>
> One way to avoid it might be using:
>
> void testBoostThread()
> {
> boost::thread thrd (boost::ref(testclass)); // pass testclass by
> reference
> thrd.join();
> }
Thanks for the guidance Darren, Nat (and gchen).
I will be trying out your suggestions soon. Quite curious though, that the
object passed by value to boost::thread was copied at least five times (if we
go by the number of destructions taht took place).
This is the first time I've seen boost::ref actually being useful XD I always
thought it's easier to just create a pointer (or a reference) if I want to
pass by reference. Thanks for introducing me to it.
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