|
Boost Users : |
Subject: Re: [Boost-users] [thread] understanding multiple statically-linked boost::thread in same process
From: Simon Haegler (SHaegler_at_[hidden])
Date: 2017-01-31 04:12:54
niall, gavin,
thanks for your help.
we successfully managed to eliminate the multiple copies of CGAL and boost::thread and the problem is gone.
best,
simon
________________________________________
From: Boost-users <boost-users-bounces_at_[hidden]> on behalf of Gavin Lambert <gavinl_at_[hidden]>
Sent: Tuesday, January 31, 2017 00:19
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] [thread] understanding multiple statically-linked boost::thread in same process
On 28/01/2017 04:29, Simon Haegler wrote:
> i am debugging an application where several shared libraries contain
> statically-linked copies of boost::thread (and other boost components).
> this means the static part of boost::thread is multiple times present in
> the process.
>
> on macos (apple clang 7.3) we see rare (but reproducible) access
> violations caused by boost::thread_specific_ptr::get() unexpectedly
> returning nullptr. if we enable assertions we get an assert in
> thread.cpp:151
>
> if we dynamically link boost the problems go away. i can superficially
> understand that linking only one "common" instanceof boost::thread is
> "more safe".
As Niall said, the general rules for library interaction are to not do that.
You can sometimes get away with it if you're very careful about
isolation -- in this case, it would probably work if you made sure that
the thread_specific_ptrs are only ever accessed on threads that were
started by the same library, and completely hid these threads from the
consumers of the library -- but this way lies dragons, and it's far too
easy to make seemingly simple changes that poke a hole in the isolation
and break things, sometimes in subtle ways. So don't do it.
_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.boost.org_mailman_listinfo.cgi_boost-2Dusers&d=DwICAg&c=n6-cguzQvX_tUIrZOS_4Og&r=1qMgo39tVkx6cj8JVbCB5naHvVpKbYm8ncmOImpHPQY&m=t8Qx5jGJxvUNSoo53HQ3aW2Y8wpWRuwlLxye0SW6m9o&s=ILd1gLvij5UVuvlV9jPFNB3EY_CkzptDVgi_wfLpjJg&e=
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