diff options
Diffstat (limited to 'libdw/dwarf_getscopes_die.c')
-rw-r--r-- | libdw/dwarf_getscopes_die.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libdw/dwarf_getscopes_die.c b/libdw/dwarf_getscopes_die.c index 07fb9b00..3262670e 100644 --- a/libdw/dwarf_getscopes_die.c +++ b/libdw/dwarf_getscopes_die.c @@ -86,10 +86,13 @@ dwarf_getscopes_die (Dwarf_Die *die, Dwarf_Die **scopes) if (die == NULL) return -1; + rwlock_rdlock (die->cu->dbg->lock); struct Dwarf_Die_Chain cu = { .die = CUDIE (die->cu), .parent = NULL }; void *info = die->addr; int result = __libdw_visit_scopes (1, &cu, &scope_visitor, NULL, &info); if (result > 0) *scopes = info; + rwlock_unlock (die->cu->dbg->lock); + return result; } |