diff options
author | Yann Ylavic <ylavic@apache.org> | 2022-01-19 17:06:36 +0000 |
---|---|---|
committer | Yann Ylavic <ylavic@apache.org> | 2022-01-19 17:06:36 +0000 |
commit | 7ede1bf8c1c8e638124c46e2458fe17ce47f4747 (patch) | |
tree | c714c52a518ad21d30bb0f652b2d6862acf063ec /Makefile.win | |
parent | 5cc6c01f2f23b18dbbae0bf3ddb0307f5fd13263 (diff) | |
download | apr-7ede1bf8c1c8e638124c46e2458fe17ce47f4747.tar.gz |
apr_thread: Follow up to r1884078: Unmanaged pools for attached threads too.
[Note 1.7.x: this removes apr__pool_unmanage() thus r1884103's ABI issues]
r1884078 fixed lifetime issues with detached threads by using unmanaged pool
destroyed by the thread itself on exit, with no binding to the parent pool.
This commit makes use of unmanaged pools for attached threads too, they needed
their own allocator anyway due to apr_thread_detach() being callable anytime
later. apr__pool_unmanage() was a hack to detach a subpool from its parent, but
if a subpool needs its own allocator for this to work correctly there is no
point in creating a subpool for threads (no memory reuse on destroy for short
living threads for instance).
Since an attached thread has its own lifetime now, apr_thread_join() must be
called to free its resources/pool, though it's no different than before when
destroying the parent pool was UB if the thread was still running (i.e. not
joined yet).
Let's acknoledge that threads want no binding with the pool passed to them at
creation time, besides the abort_fn which they can steal :)
Merges r1897179 from trunk.
Submitted by: ylavic
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.7.x@1897210 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'Makefile.win')
0 files changed, 0 insertions, 0 deletions