Boost logo

Boost :

From: williamkempf_at_[hidden]
Date: 2001-07-02 14:26:03


--- In boost_at_y..., "Peter Dimov" <pdimov_at_m...> wrote:
> From: <williamkempf_at_h...>
>
> > No, it really doesn't. Remember, the original pattern didn't use
a
> > thread group, it used an array of std::auto_ptrs, and it's ease of
> > use was nearly identical.
>
> An array of auto_ptrs isn't as flexible as a thread_group. It's
fixed size
> and can't have threads dynamically added on the fly.
>
> > > You didn't say anything about sharing a thread_group between
> > threads, so a
> > > non-synchronized thread_group still matches the ad-hoc
> > specification given
> > > in your 'void foo()' example.
> >
> > True... what I had in mind and what was obvious from the posts are
> > two different things.
>
> :-)
>
> Implementing a thread-safe thread_group is a completely different
can of
> worms.
>
> > > And explicit management is error prone, as you have
demonstrated.
> >
> > Explicit management isn't error prone. Manual management is. The
> > std::auto_ptr<> uses explicit management, and errors don't occur
> > because of this.
>
> So why didn't you use "explicit management" in creating the
thread_group,
> but opted for "manual management" instead?

It does explicit management. The implementation uses manual
management, but that's neither here nor there in this argument. Note
that std::auto_ptr also uses manual memory management in the
implementation.

Bill Kempf


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk