
on Tue Jan 31 2012, Anthony Williams <anthony.ajw-AT-gmail.com> wrote:
On 30/01/12 18:44, Dave Abrahams wrote:
on Mon Jan 23 2012, "Jeffrey Lee Hellrung, Jr."<jeffrey.hellrung-AT-gmail.com> wrote:
On Mon, Jan 23, 2012 at 10:16 AM, Vicente J. Botet Escriba< vicente.botet@wanadoo.fr> wrote:
at least, I'm guessing thread is pimpl'ed
Reading this surprised me so much that I had to look for myself, and indeed it does seem to be pimpl'ed. My understanding was that the move-only threading components were designed so that they could be implemented as efficiently as possible, without dynamic allocation, and I wonder why Boost's implementation would be less efficient.
"Efficiency" is in the eye of the beholder. The thread function supplied to the OS has to have various bits of data from the boost::thread constructor, not least of which the function (object) to call and its parameters. It has to store these somewhere that persists (at a fixed address) for the life of the thread, even if the boost::thread object is moved, or the thread is detached.
Oh, silly me. That makes sense. Thanks for the explanation. -- Dave Abrahams BoostPro Computing http://www.boostpro.com