gold: Avoid sharing Plugin_list::iterator
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 8 Nov 2020 12:10:01 +0000 (04:10 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 8 Nov 2020 12:10:15 +0000 (04:10 -0800)
commitd4820dac5e7608e24fba6d08cde9248b4c4b2928
treee679864fec0c2c99baf9f1f2cab0ad3ac2f60666
parenta907d563de51b5288a7acae8df805428cc1b960d
gold: Avoid sharing Plugin_list::iterator

class Plugin_manager has

  // A pointer to the current plugin.  Used while loading plugins.
  Plugin_list::iterator current_;

The same iterator is shared by all threads. It is OK to use it to load
plugins since only one thread loads plugins.  Avoid sharing Plugin_list
iterator in all other cases.

PR gold/26200
* plugin.cc (Plugin_manager::claim_file): Don't share Plugin_list
iterator.
(Plugin_manager::all_symbols_read): Likewise.
(Plugin_manager::cleanup): Likewise.
gold/ChangeLog
gold/plugin.cc