Fix race in DWARF reader

The recent change to record the DWARF language in the per-CU data
yielded a race warning in my testing:

ThreadSanitizer: data race ../../binutils-gdb/gdb/dwarf2/read.c:21779 in prepare_one_comp_unit

This patch fixes the bug by applying the same style of fix that was
done for the ordinary (gdb) language.

I wonder if this code could be improved.  Requiring an atomic for the
language in particular seems unfortunate, as it is often consulted
during index finalization.  However, I haven't investigated this.

Regression tested on x86-64 Fedora 38.

Reviewed-by: Tom de Vries <tdevries@suse.de>
This commit is contained in:
Tom Tromey
2023-10-17 14:32:26 -06:00
parent 1b1b9bc05f
commit 379435351c
3 changed files with 41 additions and 25 deletions

View File

@@ -1205,7 +1205,7 @@ write_shortcuts_table (cooked_index *table, data_buf &shortcuts,
if (main_info != nullptr)
{
dw_lang = main_info->per_cu->dw_lang;
dw_lang = main_info->per_cu->dw_lang ();
if (dw_lang != 0)
{