minedmap/tile_renderer: terminate on errors

Only the processing step may fail for individual tiles (when a region is
currently being saved when attempting to process it), the other steps
should never fail.
This commit is contained in:
Matthias Schiffer 2023-08-15 18:31:53 +02:00
parent 155171803d
commit 6a82fcc9b4
Signed by: neocturne
GPG key ID: 16EF3F64CB201D9C

View file

@ -265,11 +265,10 @@ impl<'a> TileRenderer<'a> {
fs::create_dir_all(&self.config.tile_dir(TileKind::Map, 0))?;
// Use par_bridge to process items in order (for better use of region cache)
regions.iter().par_bridge().for_each(|&coords| {
if let Err(err) = self.render_tile(coords) {
eprintln!("Failed to render tile {:?}: {:?}", coords, err);
}
});
regions.iter().par_bridge().try_for_each(|&coords| {
self.render_tile(coords)
.with_context(|| format!("Failed to render tile {:?}", coords))
})?;
Ok(())
}