Remove jobserver from Session
It is effectively a global resource and the jobserver::Client in Session was a clone of GLOBAL_CLIENT anyway.
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
use std::sync::{Arc, Condvar, Mutex};
|
||||
|
||||
use jobserver::HelperThread;
|
||||
use rustc_data_structures::jobserver::{self, HelperThread};
|
||||
use rustc_errors::DiagCtxtHandle;
|
||||
use rustc_session::Session;
|
||||
|
||||
// FIXME don't panic when a worker thread panics
|
||||
|
||||
@@ -14,14 +13,13 @@ pub(super) struct ConcurrencyLimiter {
|
||||
}
|
||||
|
||||
impl ConcurrencyLimiter {
|
||||
pub(super) fn new(sess: &Session, pending_jobs: usize) -> Self {
|
||||
pub(super) fn new(pending_jobs: usize) -> Self {
|
||||
let state = Arc::new(Mutex::new(state::ConcurrencyLimiterState::new(pending_jobs)));
|
||||
let available_token_condvar = Arc::new(Condvar::new());
|
||||
|
||||
let state_helper = state.clone();
|
||||
let available_token_condvar_helper = available_token_condvar.clone();
|
||||
let helper_thread = sess
|
||||
.jobserver
|
||||
let helper_thread = jobserver::client()
|
||||
.clone()
|
||||
.into_helper_thread(move |token| {
|
||||
let mut state = state_helper.lock().unwrap();
|
||||
@@ -113,7 +111,7 @@ impl Drop for ConcurrencyLimiterToken {
|
||||
}
|
||||
|
||||
mod state {
|
||||
use jobserver::Acquired;
|
||||
use rustc_data_structures::jobserver::Acquired;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub(super) struct ConcurrencyLimiterState {
|
||||
|
||||
@@ -679,7 +679,7 @@ pub(crate) fn run_aot(
|
||||
metadata_module: None,
|
||||
metadata,
|
||||
crate_info: CrateInfo::new(tcx, target_cpu),
|
||||
concurrency_limiter: ConcurrencyLimiter::new(tcx.sess, 0),
|
||||
concurrency_limiter: ConcurrencyLimiter::new(0),
|
||||
});
|
||||
};
|
||||
|
||||
@@ -711,7 +711,7 @@ pub(crate) fn run_aot(
|
||||
CguReuse::PreLto | CguReuse::PostLto => false,
|
||||
});
|
||||
|
||||
let concurrency_limiter = IntoDynSyncSend(ConcurrencyLimiter::new(tcx.sess, todo_cgus.len()));
|
||||
let concurrency_limiter = IntoDynSyncSend(ConcurrencyLimiter::new(todo_cgus.len()));
|
||||
|
||||
let modules = tcx.sess.time("codegen mono items", || {
|
||||
let mut modules: Vec<_> = par_map(todo_cgus, |(_, cgu)| {
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
#![warn(unused_lifetimes)]
|
||||
// tidy-alphabetical-end
|
||||
|
||||
extern crate jobserver;
|
||||
#[macro_use]
|
||||
extern crate rustc_middle;
|
||||
extern crate rustc_abi;
|
||||
|
||||
Reference in New Issue
Block a user