Lock around libdwarf calls
This commit is contained in:
parent
99790a03c3
commit
214dd1df36
@ -1038,6 +1038,9 @@ namespace libdwarf {
|
||||
CPPTRACE_FORCE_NO_INLINE_FOR_PROFILING
|
||||
std::vector<stacktrace_frame> resolve_frames(const std::vector<object_frame>& frames) {
|
||||
std::vector<stacktrace_frame> trace(frames.size(), stacktrace_frame { 0, 0, UINT_LEAST32_MAX, "", "" });
|
||||
static std::mutex mutex;
|
||||
// Locking around all libdwarf interaction per https://github.com/davea42/libdwarf-code/discussions/184
|
||||
const std::lock_guard<std::mutex> lock(mutex);
|
||||
for(const auto& obj_entry : collate_frames(frames, trace)) {
|
||||
const auto& obj_name = obj_entry.first;
|
||||
dwarf_resolver resolver(obj_name);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user