about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2018-04-05 10:49:13 -0500
committerGitHub <noreply@github.com>2018-04-05 10:49:13 -0500
commitb0bd9a771e81740da7e4a7a2f5a6dfecce10c699 (patch)
tree307f491346376bb59d85e371c6c2a4fff1464b18 /src/libsyntax/parse/parser.rs
parent56714acc5eb0687ed9a7566fdebe5528657fc5b3 (diff)
parent4f7d0fde1c5f577c1f956d5d4edfbb202a5bc3cf (diff)
downloadrust-b0bd9a771e81740da7e4a7a2f5a6dfecce10c699.tar.gz
rust-b0bd9a771e81740da7e4a7a2f5a6dfecce10c699.zip
Rollup merge of #49045 - Zoxc:tls, r=michaelwoerister
Make queries thread safe

This makes queries thread safe by removing the query stack and making queries point to their parents. Queries write to the query map when starting and cycles are detected by checking if there's already an entry in the query map. This makes cycle detection O(1) instead of O(n), where `n` is the size of the query stack.

This is mostly corresponds to the method I described [here](https://internals.rust-lang.org/t/parallelizing-rustc-using-rayon/6606).

cc @rust-lang/compiler

r? @michaelwoerister
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
0 files changed, 0 insertions, 0 deletions