From: Vladimir Prus (ghost_at_[hidden])
Date: 2006-09-09 06:19:35
On Thursday 07 September 2006 17:55, David Abrahams wrote:
> Vladimir Prus <ghost_at_[hidden]> writes:
> > On Monday 04 September 2006 16:34, David Abrahams wrote:
> >> David Abrahams <dave_at_[hidden]> writes:
> >> > [Taking this back to the boost.build list where it belongs]
> >> >
> >> > "MANSION, James, GBM" <James.MANSION_at_[hidden]> writes:
> >> >> # Even where Python itself uses pthreads, it never allows
> >> >> # extension modules to be entered concurrently (unless they
> >> >> # explicitly give up the interpreter lock). Therefore,
> >> >> # extension modules don't need the efficiency overhead of
> >> >> # threadsafe code as produced by <threading>multi, and we
> >> >> # handle libpthread along with other libraries here.
> >> >>
> >> >> Is that absolutely right? I mean, errno is sometimes different if
> >> >> you are a single-threaded or multi-threaded build,
> >> >
> >> > In what way is errno different?
> >> James wasn't allowed to post to this list, and I quite impolitely
> >> forwarded his comments here, for which I have apologized. But he has
> >> a point. Suffice it to say that he convinced me <threading>multi is
> >> required in general, even if on many systems it can probably be left
> >> out for many programs. Basically -mt has to be assumed to change the
> >> ABI used by the standard library.
> > The errno point is interesting.
> It's not just errno, as James pointed out to me in private email. The
> "usual implementation" of many standard libraries is engineered to
> make errno work properly even if you link ST code with a MT code, but
> that doesn't mean it's a workable practice in general.
Can James post the email here?
-- Vladimir Prus http://vladimir_prus.blogspot.com Boost.Build V2: http://boost.org/boost-build2
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk