Lines Matching full:dbg
51 __libdw_alloc_tail (Dwarf *dbg) in __libdw_alloc_tail() argument
56 pthread_rwlock_rdlock (&dbg->mem_rwl); in __libdw_alloc_tail()
57 if (thread_id >= dbg->mem_stacks) in __libdw_alloc_tail()
59 pthread_rwlock_unlock (&dbg->mem_rwl); in __libdw_alloc_tail()
60 pthread_rwlock_wrlock (&dbg->mem_rwl); in __libdw_alloc_tail()
65 if (thread_id >= dbg->mem_stacks) in __libdw_alloc_tail()
67 dbg->mem_tails = realloc (dbg->mem_tails, (thread_id+1) in __libdw_alloc_tail()
69 if (dbg->mem_tails == NULL) in __libdw_alloc_tail()
71 pthread_rwlock_unlock (&dbg->mem_rwl); in __libdw_alloc_tail()
72 dbg->oom_handler(); in __libdw_alloc_tail()
74 for (size_t i = dbg->mem_stacks; i <= thread_id; i++) in __libdw_alloc_tail()
75 dbg->mem_tails[i] = NULL; in __libdw_alloc_tail()
76 dbg->mem_stacks = thread_id + 1; in __libdw_alloc_tail()
77 ANNOTATE_HAPPENS_BEFORE (&dbg->mem_tails); in __libdw_alloc_tail()
80 pthread_rwlock_unlock (&dbg->mem_rwl); in __libdw_alloc_tail()
81 pthread_rwlock_rdlock (&dbg->mem_rwl); in __libdw_alloc_tail()
85 ANNOTATE_HAPPENS_AFTER (&dbg->mem_tails); in __libdw_alloc_tail()
86 struct libdw_memblock *result = dbg->mem_tails[thread_id]; in __libdw_alloc_tail()
89 result = malloc (dbg->mem_default_size); in __libdw_alloc_tail()
92 pthread_rwlock_unlock (&dbg->mem_rwl); in __libdw_alloc_tail()
93 dbg->oom_handler(); in __libdw_alloc_tail()
95 result->size = dbg->mem_default_size in __libdw_alloc_tail()
99 dbg->mem_tails[thread_id] = result; in __libdw_alloc_tail()
101 pthread_rwlock_unlock (&dbg->mem_rwl); in __libdw_alloc_tail()
108 __libdw_thread_tail (Dwarf *dbg) in __libdw_thread_tail() argument
111 pthread_rwlock_rdlock (&dbg->mem_rwl); in __libdw_thread_tail()
112 result = dbg->mem_tails[thread_id]; in __libdw_thread_tail()
113 pthread_rwlock_unlock (&dbg->mem_rwl); in __libdw_thread_tail()
118 __libdw_allocate (Dwarf *dbg, size_t minsize, size_t align) in __libdw_allocate() argument
120 size_t size = MAX (dbg->mem_default_size, in __libdw_allocate()
125 dbg->oom_handler (); in __libdw_allocate()
132 pthread_rwlock_rdlock (&dbg->mem_rwl); in __libdw_allocate()
133 newp->prev = dbg->mem_tails[thread_id]; in __libdw_allocate()
134 dbg->mem_tails[thread_id] = newp; in __libdw_allocate()
135 pthread_rwlock_unlock (&dbg->mem_rwl); in __libdw_allocate()
142 dwarf_new_oom_handler (Dwarf *dbg, Dwarf_OOM handler) in dwarf_new_oom_handler() argument
144 Dwarf_OOM old = dbg->oom_handler; in dwarf_new_oom_handler()
145 dbg->oom_handler = handler; in dwarf_new_oom_handler()