Skip to content

Commit 7599018

Browse files
committed
admin::render_readmes: Return Result from thread::spawn() closure
1 parent d86c989 commit 7599018

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

src/admin/render_readmes.rs

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,9 @@ pub fn run(opts: Opts) {
111111
});
112112
let client = client.clone();
113113
let base_config = base_config.clone();
114-
let handle = thread::spawn(move || {
114+
let handle = thread::spawn::<_, anyhow::Result<()>>(move || {
115115
println!("[{}-{}] Rendering README...", krate_name, version.num);
116-
let readme = get_readme(base_config.uploader(), &client, &version, &krate_name);
117-
if readme.is_err() {
118-
return;
119-
}
120-
let readme = readme.unwrap();
116+
let readme = get_readme(base_config.uploader(), &client, &version, &krate_name)?;
121117
let content_length = readme.len() as u64;
122118
let content = std::io::Cursor::new(readme);
123119
let readme_path = format!("readmes/{0}/{0}-{1}.html", krate_name, version.num);
@@ -126,6 +122,7 @@ pub fn run(opts: Opts) {
126122
header::CACHE_CONTROL,
127123
header::HeaderValue::from_static(CACHE_CONTROL_README),
128124
);
125+
129126
base_config
130127
.uploader()
131128
.upload(
@@ -136,18 +133,17 @@ pub fn run(opts: Opts) {
136133
"text/html",
137134
extra_headers,
138135
)
139-
.unwrap_or_else(|_| {
140-
panic!(
141-
"[{}-{}] Couldn't upload file to S3",
142-
krate_name, version.num
143-
)
144-
});
136+
.context("Failed to upload rendered README file to S3")?;
137+
138+
Ok(())
145139
});
146140
tasks.push(handle);
147141
}
148142
for handle in tasks {
149-
if let Err(err) = handle.join() {
150-
println!("Thread panicked: {:?}", err);
143+
match handle.join() {
144+
Err(err) => println!("Thread panicked: {:?}", err),
145+
Ok(Err(err)) => println!("Thread failed: {:?}", err),
146+
_ => {}
151147
}
152148
}
153149
}

0 commit comments

Comments
 (0)