summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-04-20 02:21:33 +0000
committerEric Fiselier <eric@efcs.ca>2016-04-20 02:21:33 +0000
commite94c1aee2bef8ee8671d56160e2c27f9704646ae (patch)
treee4f14cea99c8f3c7e30355a6b17f1cea238bb5de /docs
parent8d5cbd7ce2e9500dd56588f65cace811b7444bb9 (diff)
downloadlibcxx-e94c1aee2bef8ee8671d56160e2c27f9704646ae.tar.gz
[libcxx] Fix PR15638 - Only allocate in parent when starting a thread to prevent calling terminate.
Summary: Hi, When creating a new thread libc++ performs at least 2 allocations. The first allocates a tuple of args and the functor that will be passed to the new thread. The second allocation is for the thread local storage needed internally by libc++. Currently the second allocation happens in the child thread, meaning that if it throws the program will terminate with an uncaught bad alloc. The solution to this is to allocate ALL memory in the parent thread and then pass it to the child. See https://llvm.org/bugs/show_bug.cgi?id=15638 Reviewers: mclow.lists, danalbert, jroelofs, EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D13748 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@266851 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions