Selaa lähdekoodia

remove deleted directories (see #5689)

Simon Krajewski 9 vuotta sitten
vanhempi
commit
88d9d40533
2 muutettua tiedostoa jossa 9 lisäystä ja 0 poistoa
  1. 7 0
      src/context/common.ml
  2. 2 0
      src/server.ml

+ 7 - 0
src/context/common.ml

@@ -409,6 +409,13 @@ module CompilationServer = struct
 	let add_directories cs key value =
 		Hashtbl.replace cs.cache.c_directories key value
 
+	let remove_directory cs key value =
+		try
+			let current = find_directories cs key in
+			Hashtbl.replace cs.cache.c_directories key (List.filter (fun (s,_) -> s <> value) current);
+		with Not_found ->
+			()
+
 	let clear_directories cs key =
 		Hashtbl.remove cs.cache.c_directories key
 end

+ 2 - 0
src/server.ml

@@ -210,6 +210,8 @@ let rec wait_loop process_params verbose accept =
 						let time' = (Unix.stat (Path.remove_trailing_slash dir)).Unix.st_mtime in
 						if !time < time' then (time := time'; true) else false
 					with Unix.Unix_error _ ->
+						CompilationServer.remove_directory cs sign dir;
+						if verbose then print_endline (Printf.sprintf "%sremoved directory %s" (sign_string ctx.Typecore.com) dir);
 						false
 				) (CompilationServer.find_directories cs sign)
 			with Not_found ->