@@ -132,7 +132,7 @@ pub fn main() {
132
132
let res = std:: thread:: Builder :: new ( ) . stack_size ( STACK_SIZE ) . spawn ( move || {
133
133
let s = env:: args ( ) . collect :: < Vec < _ > > ( ) ;
134
134
main_args ( & s)
135
- } ) . unwrap ( ) . join ( ) . unwrap ( ) ;
135
+ } ) . unwrap ( ) . join ( ) . unwrap_or ( 101 ) ;
136
136
process:: exit ( res as i32 ) ;
137
137
}
138
138
@@ -273,7 +273,6 @@ pub fn main_args(args: &[String]) -> isize {
273
273
!matches. opt_present ( "markdown-no-toc" ) ) ,
274
274
( false , false ) => { }
275
275
}
276
-
277
276
let out = match acquire_input ( input, externs, & matches) {
278
277
Ok ( out) => out,
279
278
Err ( s) => {
@@ -375,12 +374,12 @@ fn rust_input(cratefile: &str, externs: core::Externs, matches: &getopts::Matche
375
374
info ! ( "starting to run rustc" ) ;
376
375
377
376
let ( tx, rx) = channel ( ) ;
378
- std :: thread :: spawn ( move || {
377
+ rustc_driver :: monitor ( move || {
379
378
use rustc:: session:: config:: Input ;
380
379
381
380
tx. send ( core:: run_core ( paths, cfgs, externs, Input :: File ( cr) ,
382
381
triple) ) . unwrap ( ) ;
383
- } ) . join ( ) . map_err ( |_| "rustc failed" ) . unwrap ( ) ;
382
+ } ) ;
384
383
let ( mut krate, analysis) = rx. recv ( ) . unwrap ( ) ;
385
384
info ! ( "finished with rustc" ) ;
386
385
let mut analysis = Some ( analysis) ;
0 commit comments