Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/lib/libunwind Defer acquiring the FDE lock until after t...
details: https://anonhg.NetBSD.org/src/rev/3fb19be1f443
branches: trunk
changeset: 959916:3fb19be1f443
user: joerg <joerg%NetBSD.org@localhost>
date: Sun Feb 28 23:12:37 2021 +0000
description:
Defer acquiring the FDE lock until after the allocation. This can avoid
nesting issues between malloc and backtrace when using LSan.
diffstat:
sys/lib/libunwind/AddressSpace.hpp | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diffs (19 lines):
diff -r 5f4d8a18aee1 -r 3fb19be1f443 sys/lib/libunwind/AddressSpace.hpp
--- a/sys/lib/libunwind/AddressSpace.hpp Sun Feb 28 22:12:16 2021 +0000
+++ b/sys/lib/libunwind/AddressSpace.hpp Sun Feb 28 23:12:37 2021 +0000
@@ -283,7 +283,6 @@
}
bool addFDE(pint_t pcStart, pint_t pcEnd, pint_t fde) {
- pthread_rwlock_wrlock(&fdeTreeLock);
Range *n = (Range *)malloc(sizeof(*n));
n->hdr_base = fde;
n->hdr_start = 0;
@@ -292,6 +291,7 @@
n->last_pc = pcEnd;
n->data_base = 0;
n->ehframe_base = 0;
+ pthread_rwlock_wrlock(&fdeTreeLock);
if (static_cast<Range *>(rb_tree_insert_node(&segmentTree, n)) == n) {
pthread_rwlock_unlock(&fdeTreeLock);
return true;
Home |
Main Index |
Thread Index |
Old Index