mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-17 06:26:55 +00:00
Merge #6722
6722: Minor proc macro cleanups r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
This commit is contained in:
commit
6943b53023
@ -19,7 +19,7 @@ use crate::{
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
pub(crate) struct ProcMacroProcessSrv {
|
||||
inner: Option<Weak<Sender<Task>>>,
|
||||
inner: Weak<Sender<Task>>,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
@ -42,7 +42,7 @@ impl ProcMacroProcessSrv {
|
||||
});
|
||||
|
||||
let task_tx = Arc::new(task_tx);
|
||||
let srv = ProcMacroProcessSrv { inner: Some(Arc::downgrade(&task_tx)) };
|
||||
let srv = ProcMacroProcessSrv { inner: Arc::downgrade(&task_tx) };
|
||||
let thread = ProcMacroProcessThread { handle, sender: task_tx };
|
||||
|
||||
Ok((thread, srv))
|
||||
@ -79,13 +79,8 @@ impl ProcMacroProcessSrv {
|
||||
where
|
||||
R: TryFrom<Response, Error = &'static str>,
|
||||
{
|
||||
let sender = match &self.inner {
|
||||
None => return Err(tt::ExpansionError::Unknown("No sender is found.".to_string())),
|
||||
Some(it) => it,
|
||||
};
|
||||
|
||||
let (result_tx, result_rx) = bounded(0);
|
||||
let sender = match sender.upgrade() {
|
||||
let sender = match self.inner.upgrade() {
|
||||
None => {
|
||||
return Err(tt::ExpansionError::Unknown("Proc macro process is closed.".into()))
|
||||
}
|
||||
@ -109,14 +104,9 @@ impl ProcMacroProcessSrv {
|
||||
}
|
||||
|
||||
fn client_loop(task_rx: Receiver<Task>, mut process: Process) {
|
||||
let (mut stdin, mut stdout) = match process.stdio() {
|
||||
None => return,
|
||||
Some(it) => it,
|
||||
};
|
||||
|
||||
for task in task_rx {
|
||||
let Task { req, result_tx } = task;
|
||||
let (mut stdin, mut stdout) = process.stdio().expect("couldn't access child stdio");
|
||||
|
||||
for Task { req, result_tx } in task_rx {
|
||||
match send_request(&mut stdin, &mut stdout, req) {
|
||||
Ok(res) => result_tx.send(res).unwrap(),
|
||||
Err(_err) => {
|
||||
|
Loading…
Reference in New Issue
Block a user