summaryrefslogtreecommitdiffstats
path: root/src/components/mail/view.rs
diff options
context:
space:
mode:
authorManos Pitsidianakis <el13635@mail.ntua.gr>2020-07-05 13:22:48 +0300
committerManos Pitsidianakis <el13635@mail.ntua.gr>2020-07-06 15:27:06 +0300
commitbbedeed3e37b5d145977c5ffbd75788f9ca1f4d5 (patch)
tree9abad07e8aa0fa17fd6d8d851973f0822a3c9849 /src/components/mail/view.rs
parent391058a59cc04c79b09e94a5b8d4352884005cfb (diff)
More imap async fixes
Diffstat (limited to 'src/components/mail/view.rs')
-rw-r--r--src/components/mail/view.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/components/mail/view.rs b/src/components/mail/view.rs
index 77dd48d9..81aab19f 100644
--- a/src/components/mail/view.rs
+++ b/src/components/mail/view.rs
@@ -193,11 +193,15 @@ impl MailView {
.and_then(|mut op| op.as_bytes())
{
Ok(fut) => {
- let (chan, job_id) = account.job_executor.spawn_specialized(fut);
+ let (mut chan, job_id) = account.job_executor.spawn_specialized(fut);
debug!(&job_id);
self.active_jobs.insert(job_id.clone());
account.active_jobs.insert(job_id, JobRequest::AsBytes);
- self.state = MailViewState::LoadingBody { job_id, chan };
+ if let Ok(Some(bytes_result)) = try_recv_timeout!(&mut chan) {
+ self.state = MailViewState::Loaded { body: bytes_result };
+ } else {
+ self.state = MailViewState::LoadingBody { job_id, chan };
+ }
}
Err(err) => {
context.replies.push_back(UIEvent::StatusEvent(