diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-08-07 20:48:23 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-07 20:48:23 +0000 |
commit | 6bd42365fa2f46430fe933deaecd879857415fc4 (patch) | |
tree | 35fd86815e299c395b22f7d8beb4abc75a3ed965 /gcc/omp-general.c | |
parent | f44e5cf628b6306ebbb305d80a025eb12b76ccca (diff) | |
parent | d80f411c8ad4c19c9db4e03c3a7ceca8507dc391 (diff) | |
download | gcc-6bd42365fa2f46430fe933deaecd879857415fc4.zip gcc-6bd42365fa2f46430fe933deaecd879857415fc4.tar.gz gcc-6bd42365fa2f46430fe933deaecd879857415fc4.tar.bz2 |
Merge #612
612: Turn Session Manager into basic singleton r=philberty a=CohenArthur
This PR changes the behavior of the compiler's session manager: Instead of keeping a single static instance in `rust-lang.cc`, the class now exposes a static instance via a `get_instance()` method. This is important for external module parsing as a new lexer and parser need to be instantiated during macro expansion, and a lexer must rely on a linemap, of which a single instance exists and is contained in the `Session` instance.
I ran into a few issues trying to make this a bit smarter (for example, by calling `init()` on the first `get_instance()` invocation) because I ran into a race condition. I haven't looked into it, but it seems that the calls to the various language hooks are sometimes multithreaded.
Co-authored-by: CohenArthur <arthur.cohen@epita.fr>
Diffstat (limited to 'gcc/omp-general.c')
0 files changed, 0 insertions, 0 deletions