|
Boost Users : |
Subject: Re: [Boost-users] thread group
From: Martin Dyring-Andersen (mda_at_[hidden])
Date: 2010-11-29 06:06:45
Lloyd wrote:
> boost::thread_group tg;
> for(int i=0;i<n;++i)
> {
> boost::shared_ptr<boost::thread> th(new boost::thread(boost::bind(&Enum::Execute,shared_from_this(),i,x)));
> tg.add_thread(th.get());
> }
> tg.join_all();
>
> But the threads are not joined, it is exiting without completion. What could be the mistake I am doing?
The thread pointer (th) will be destroyed once it goes out of scope, right after end-curly-bracket in the loop.
I think this is what you are looking for:
boost::thread_group tg;
for(int i=0;i<n;++i)
{
tg.create_thread(boost::bind(&Enum::Execute,shared_from_this(),i,x));
}
tg.join_all();
-- Best regards, Martin Dyring-Andersen
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