Remove cooked_index_worker::start_reading

I noticed that cooked_index_worker::start_reading isn't really needed.
This patch removes it, and also removes the SCOPED_EXIT, in favor of a
direct call.
This commit is contained in:
Tom Tromey
2023-12-03 12:40:06 -07:00
parent 47efef8f2d
commit 36cde74bd8
2 changed files with 17 additions and 30 deletions

View File

@@ -449,30 +449,22 @@ cooked_index_worker::start ()
{
gdb::thread_pool::g_thread_pool->post_task ([=] ()
{
this->start_reading ();
try
{
do_reading ();
}
catch (const gdb_exception &exc)
{
m_failed = exc;
set (cooked_state::CACHE_DONE);
}
bfd_thread_cleanup ();
});
}
/* See cooked-index.h. */
void
cooked_index_worker::start_reading ()
{
SCOPE_EXIT { bfd_thread_cleanup (); };
try
{
do_reading ();
}
catch (const gdb_exception &exc)
{
m_failed = exc;
set (cooked_state::CACHE_DONE);
}
}
/* See cooked-index.h. */
bool
cooked_index_worker::wait (cooked_state desired_state, bool allow_quit)
{
@@ -520,7 +512,7 @@ cooked_index_worker::wait (cooked_state desired_state, bool allow_quit)
if (m_failed.has_value ())
{
/* start_reading failed -- report it. */
/* do_reading failed -- report it. */
exception_print (gdb_stderr, *m_failed);
m_failed.reset ();
return done;

View File

@@ -534,13 +534,8 @@ protected:
friend class cooked_index;
void set (cooked_state desired_state);
/* Start reading DWARF. This can be run in a worker thread without
problems. */
void start_reading ();
/* Helper function that does most of the work for start_reading.
This must be able to be run in a worker thread without
problems. */
/* Helper function that does the work of reading. This must be able
to be run in a worker thread without problems. */
virtual void do_reading () = 0;
/* A callback that can print stats, if needed. This is called when
@@ -579,9 +574,9 @@ protected:
arose during scanning have been reported by 'wait'. This may
only be modified on the main thread. */
bool m_reported = false;
/* If set, an exception occurred during start_reading; in this case
the scanning is stopped and this exception will later be reported
by the 'wait' method. */
/* If set, an exception occurred during reading; in this case the
scanning is stopped and this exception will later be reported by
the 'wait' method. */
std::optional<gdb_exception> m_failed;
};