diff options
Diffstat (limited to 'bin/domain/imag-mail/src/lib.rs')
-rw-r--r-- | bin/domain/imag-mail/src/lib.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/bin/domain/imag-mail/src/lib.rs b/bin/domain/imag-mail/src/lib.rs index c0125751..f9bc966a 100644 --- a/bin/domain/imag-mail/src/lib.rs +++ b/bin/domain/imag-mail/src/lib.rs @@ -215,11 +215,18 @@ fn list(rt: &Runtime) -> Result<()> { drop(fle); id }) - .and_then_ok(|id: String| mailstore.get_mailtree(&id)) + + // we have to collect here, so that all FLEs are drop()ed + .collect::<Result<Vec<String>>>()? + .into_iter() + .map(|id: String| mailstore.get_mailtree(&id)) .collect::<Result<Vec<Mailtree>>>() } else { iter.and_then_ok(|fle| fle.get_cached_id()) - .and_then_ok(|id: String| mailstore.get_mailtree(&id)) + // we have to collect here, so that all FLEs are drop()ed + .collect::<Result<Vec<String>>>()? + .into_iter() + .map(|id: String| mailstore.get_mailtree(&id)) .collect::<Result<Vec<Mailtree>>>() }?; |