Boost logo

Boost Users :

Subject: Re: [Boost-users] boost::thread and boost::asio::io_service questions
From: Boris Schaeling (boris_at_[hidden])
Date: 2011-06-11 07:27:14


On Fri, 10 Jun 2011 22:27:49 +0200, Christopher Pisz <cpisz_at_[hidden]>
wrote:

> 1) Why can't I pass boost::io_service by reference in the call,
> boost::thread
> workerThread(DoWork, 1, ioService); with a function signature of void
> DoWork
> (const unsigned int threadNum, boost::asio::io_service * ioService) ? I
> changed it to a pointer and it works, but I don't know why I can't do it
> by
> reference.

Use boost::ref:

boost::thread workerThread(DoWork, 1, boost::ref(ioService));

> 2) If boost::thread is not copyable, how can I store a collection of
> "thread
> handles" or boost::thread objects like the variable workerThread? I
> can't use
> the std collections I would usually use...

You can create boost::thread objects with new and put the pointers in
boost::shared_ptrs or a pointer container like boost::ptr_vector.

HTH,
Boris

> [...]


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