@@ -802,7 +802,7 @@ fn update_from_dist_(
802
802
} ;
803
803
804
804
loop {
805
- match try_update_from_dist_ (
805
+ match utils :: run_future ( try_update_from_dist_ (
806
806
download,
807
807
update_hash,
808
808
& toolchain,
@@ -812,7 +812,7 @@ fn update_from_dist_(
812
812
components,
813
813
targets,
814
814
& mut fetched,
815
- ) {
815
+ ) ) {
816
816
Ok ( v) => break Ok ( v) ,
817
817
Err ( e) => {
818
818
if !backtrack {
@@ -882,7 +882,7 @@ fn update_from_dist_(
882
882
}
883
883
}
884
884
885
- fn try_update_from_dist_ (
885
+ async fn try_update_from_dist_ (
886
886
download : DownloadCfg < ' _ > ,
887
887
update_hash : Option < & Path > ,
888
888
toolchain : & ToolchainDesc ,
@@ -898,7 +898,7 @@ fn try_update_from_dist_(
898
898
899
899
// TODO: Add a notification about which manifest version is going to be used
900
900
( download. notify_handler ) ( Notification :: DownloadingManifest ( & toolchain_str) ) ;
901
- match utils :: run_future ( dl_v2_manifest (
901
+ match dl_v2_manifest (
902
902
download,
903
903
// Even if manifest has not changed, we must continue to install requested components.
904
904
// So if components or targets is not empty, we skip passing `update_hash` so that
@@ -909,7 +909,9 @@ fn try_update_from_dist_(
909
909
None
910
910
} ,
911
911
toolchain,
912
- ) ) {
912
+ )
913
+ . await
914
+ {
913
915
Ok ( Some ( ( m, hash) ) ) => {
914
916
( download. notify_handler ) ( Notification :: DownloadedManifest (
915
917
& m. date ,
@@ -962,14 +964,17 @@ fn try_update_from_dist_(
962
964
963
965
fetched. clone_from ( & m. date ) ;
964
966
965
- return match utils:: run_future ( manifestation. update (
966
- & m,
967
- changes,
968
- force_update,
969
- & download,
970
- & toolchain. manifest_name ( ) ,
971
- true ,
972
- ) ) {
967
+ return match manifestation
968
+ . update (
969
+ & m,
970
+ changes,
971
+ force_update,
972
+ & download,
973
+ & toolchain. manifest_name ( ) ,
974
+ true ,
975
+ )
976
+ . await
977
+ {
973
978
Ok ( status) => match status {
974
979
UpdateStatus :: Unchanged => Ok ( None ) ,
975
980
UpdateStatus :: Changed => Ok ( Some ( hash) ) ,
@@ -1012,7 +1017,7 @@ fn try_update_from_dist_(
1012
1017
}
1013
1018
1014
1019
// If the v2 manifest is not found then try v1
1015
- let manifest = match utils :: run_future ( dl_v1_manifest ( download, toolchain) ) {
1020
+ let manifest = match dl_v1_manifest ( download, toolchain) . await {
1016
1021
Ok ( m) => m,
1017
1022
Err ( any) => {
1018
1023
enum Cases {
@@ -1043,12 +1048,14 @@ fn try_update_from_dist_(
1043
1048
}
1044
1049
}
1045
1050
} ;
1046
- let result = utils:: run_future ( manifestation. update_v1 (
1047
- & manifest,
1048
- update_hash,
1049
- download. tmp_cx ,
1050
- & download. notify_handler ,
1051
- ) ) ;
1051
+ let result = manifestation
1052
+ . update_v1 (
1053
+ & manifest,
1054
+ update_hash,
1055
+ download. tmp_cx ,
1056
+ & download. notify_handler ,
1057
+ )
1058
+ . await ;
1052
1059
// inspect, determine what context to add, then process afterwards.
1053
1060
let mut download_not_exists = false ;
1054
1061
match & result {
0 commit comments