aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2022-12-27 08:58:38 -0700
committerTom Tromey <tom@tromey.com>2024-01-08 18:40:21 -0700
commitf7840e9e3eb9d1a157eaae772ea6841f1b83f1ba (patch)
tree34b3df072309db8db579020d879a0918e8199bc1
parent9b595a264168cdd950c19dafe4663ca25d22234b (diff)
downloadbinutils-f7840e9e3eb9d1a157eaae772ea6841f1b83f1ba.zip
binutils-f7840e9e3eb9d1a157eaae772ea6841f1b83f1ba.tar.gz
binutils-f7840e9e3eb9d1a157eaae772ea6841f1b83f1ba.tar.bz2
Change how cooked index waits for threads
This changes the cooked index code to wait for threads in its public-facing API. That is, the waits are done in cooked_index now, and never in the cooked_index_shard. Centralizing this decision makes it easier to wait for other events here as well.
-rw-r--r--gdb/dwarf2/cooked-index.c3
-rw-r--r--gdb/dwarf2/cooked-index.h2
2 files changed, 2 insertions, 3 deletions
diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c
index ba77f9c..7588b5c 100644
--- a/gdb/dwarf2/cooked-index.c
+++ b/gdb/dwarf2/cooked-index.c
@@ -409,8 +409,6 @@ cooked_index_shard::do_finalize ()
cooked_index_shard::range
cooked_index_shard::find (const std::string &name, bool completing) const
{
- wait ();
-
cooked_index_entry::comparison_mode mode = (completing
? cooked_index_entry::COMPLETE
: cooked_index_entry::MATCH);
@@ -528,6 +526,7 @@ cooked_index::get_addrmaps () const
cooked_index::range
cooked_index::find (const std::string &name, bool completing) const
{
+ wait ();
std::vector<cooked_index_shard::range> result_range;
result_range.reserve (m_vector.size ());
for (auto &entry : m_vector)
diff --git a/gdb/dwarf2/cooked-index.h b/gdb/dwarf2/cooked-index.h
index 63fed35..914a595 100644
--- a/gdb/dwarf2/cooked-index.h
+++ b/gdb/dwarf2/cooked-index.h
@@ -288,7 +288,6 @@ public:
/* Return a range of all the entries. */
range all_entries () const
{
- wait ();
return { m_entries.cbegin (), m_entries.cend () };
}
@@ -461,6 +460,7 @@ public:
/* Return a range of all the entries. */
range all_entries () const
{
+ wait ();
std::vector<cooked_index_shard::range> result_range;
result_range.reserve (m_vector.size ());
for (auto &entry : m_vector)