Re: [Boost-bugs] [Boost C++ Libraries] #9083: thread_group::join_all() hangs when invoked on dll unload

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #9083: thread_group::join_all() hangs when invoked on dll unload
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-09-09 18:02:18


#9083: thread_group::join_all() hangs when invoked on dll unload
-------------------------+-------------------------------------------------
  Reporter: | Owner: viboes
  danobrega@… | Status: assigned
      Type: Bugs | Component: thread
 Milestone: To Be | Severity: Problem
  Determined | Keywords: thread_group join_all hang deadlock
   Version: Boost | freelibrary windows
  1.54.0 |
Resolution: |
-------------------------+-------------------------------------------------

Comment (by hvemha@…):

 OK, but my point is that you can't rely on DllMain. I don't think this is
 a problem boost can solve for you. I suggest the DllMain documentation. A
 simple search will also show all the problems you can get into with
 DllMain

 I guess this can explain your problem (from the DllMain
 documentation):[[BR]]
 ''Because DLL notifications are serialized, entry-point functions should
 not attempt to communicate with other threads or processes. Deadlocks may
 occur as a result.''

 I your case a global object is maybe the best option, but this can also
 cause problems if your code depends on other global objects. You can also
 have a look at #pragma init_seq

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9083#comment:9>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:14 UTC