@@ -25,7 +25,7 @@ use util::logv;
25
25
use std:: collections:: HashSet ;
26
26
use std:: env;
27
27
use std:: fmt;
28
- use std:: fs:: { self , File } ;
28
+ use std:: fs:: { self , File , create_dir_all } ;
29
29
use std:: io:: prelude:: * ;
30
30
use std:: io:: { self , BufReader } ;
31
31
use std:: path:: { Path , PathBuf } ;
@@ -395,7 +395,7 @@ actual:\n\
395
395
396
396
let out_dir = self . output_base_name ( ) . with_extension ( "pretty-out" ) ;
397
397
let _ = fs:: remove_dir_all ( & out_dir) ;
398
- self . create_dir_racy ( & out_dir) ;
398
+ create_dir_all ( & out_dir) . unwrap ( ) ;
399
399
400
400
// FIXME (#9639): This needs to handle non-utf8 paths
401
401
let mut args = vec ! [ "-" . to_owned( ) ,
@@ -1269,7 +1269,7 @@ actual:\n\
1269
1269
1270
1270
fn compose_and_run_compiler ( & self , args : ProcArgs , input : Option < String > ) -> ProcRes {
1271
1271
if !self . props . aux_builds . is_empty ( ) {
1272
- self . create_dir_racy ( & self . aux_output_dir_name ( ) ) ;
1272
+ create_dir_all ( & self . aux_output_dir_name ( ) ) . unwrap ( ) ;
1273
1273
}
1274
1274
1275
1275
let aux_dir = self . aux_output_dir_name ( ) ;
@@ -1340,22 +1340,6 @@ actual:\n\
1340
1340
input)
1341
1341
}
1342
1342
1343
- // Like std::fs::create_dir_all, except handles concurrent calls among multiple
1344
- // threads or processes.
1345
- fn create_dir_racy ( & self , path : & Path ) {
1346
- match fs:: create_dir ( path) {
1347
- Ok ( ( ) ) => return ,
1348
- Err ( ref e) if e. kind ( ) == io:: ErrorKind :: AlreadyExists => return ,
1349
- Err ( ref e) if e. kind ( ) == io:: ErrorKind :: NotFound => { }
1350
- Err ( e) => panic ! ( "failed to create dir {:?}: {}" , path, e) ,
1351
- }
1352
- self . create_dir_racy ( path. parent ( ) . unwrap ( ) ) ;
1353
- match fs:: create_dir ( path) {
1354
- Ok ( ( ) ) => { }
1355
- Err ( ref e) if e. kind ( ) == io:: ErrorKind :: AlreadyExists => { }
1356
- Err ( e) => panic ! ( "failed to create dir {:?}: {}" , path, e) ,
1357
- }
1358
- }
1359
1343
1360
1344
fn compose_and_run ( & self ,
1361
1345
ProcArgs { args, prog } : ProcArgs ,
@@ -1435,7 +1419,7 @@ actual:\n\
1435
1419
1436
1420
1437
1421
let mir_dump_dir = self . get_mir_dump_dir ( ) ;
1438
- self . create_dir_racy ( mir_dump_dir. as_path ( ) ) ;
1422
+ create_dir_all ( mir_dump_dir. as_path ( ) ) . unwrap ( ) ;
1439
1423
let mut dir_opt = "dump-mir-dir=" . to_string ( ) ;
1440
1424
dir_opt. push_str ( mir_dump_dir. to_str ( ) . unwrap ( ) ) ;
1441
1425
debug ! ( "dir_opt: {:?}" , dir_opt) ;
@@ -1923,7 +1907,7 @@ actual:\n\
1923
1907
1924
1908
let out_dir = self . output_base_name ( ) ;
1925
1909
let _ = fs:: remove_dir_all ( & out_dir) ;
1926
- self . create_dir_racy ( & out_dir) ;
1910
+ create_dir_all ( & out_dir) . unwrap ( ) ;
1927
1911
1928
1912
let proc_res = self . document ( & out_dir) ;
1929
1913
if !proc_res. status . success ( ) {
@@ -2299,7 +2283,7 @@ actual:\n\
2299
2283
if tmpdir. exists ( ) {
2300
2284
self . aggressive_rm_rf ( & tmpdir) . unwrap ( ) ;
2301
2285
}
2302
- self . create_dir_racy ( & tmpdir) ;
2286
+ create_dir_all ( & tmpdir) . unwrap ( ) ;
2303
2287
2304
2288
let host = & self . config . host ;
2305
2289
let make = if host. contains ( "bitrig" ) || host. contains ( "dragonfly" ) ||
0 commit comments