Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify the http_loader code. #14362

Merged
merged 14 commits into from Nov 26, 2016

Avoid some unnecessary Options in http_network_fetch.

  • Loading branch information
Ms2ger committed Nov 24, 2016
commit d9947cdf7bb81a824ca8c596818bfb7ef4cf576d
@@ -1150,12 +1150,12 @@ fn http_network_fetch(request: Rc<Request>,
let res_body = response.body.clone();

// We're about to spawn a thread to be waited on here
*done_chan = Some(channel());
let (done_sender, done_receiver) = channel();
*done_chan = Some((done_sender.clone(), done_receiver));
let meta = match response.metadata().expect("Response metadata should exist at this stage") {
FetchMetadata::Unfiltered(m) => m,
FetchMetadata::Filtered { unsafe_, .. } => unsafe_
};
let done_sender = done_chan.as_ref().map(|ch| ch.0.clone());
let devtools_sender = context.devtools_chan.clone();
let meta_status = meta.status.clone();
let meta_headers = meta.headers.clone();
@@ -1185,9 +1185,7 @@ fn http_network_fetch(request: Rc<Request>,
Ok(Data::Payload(chunk)) => {
if let ResponseBody::Receiving(ref mut body) = *res_body.lock().unwrap() {
body.extend_from_slice(&chunk);
if let Some(ref sender) = done_sender {
let _ = sender.send(Data::Payload(chunk));
}
let _ = done_sender.send(Data::Payload(chunk));
}
},
Ok(Data::Done) | Err(_) => {
@@ -1201,9 +1199,7 @@ fn http_network_fetch(request: Rc<Request>,
_ => empty_vec,
};
*res_body.lock().unwrap() = ResponseBody::Done(completed_body);
if let Some(ref sender) = done_sender {
let _ = sender.send(Data::Done);
}
let _ = done_sender.send(Data::Done);
break;
}
}
@@ -1212,9 +1208,7 @@ fn http_network_fetch(request: Rc<Request>,
Err(_) => {
// XXXManishearth we should propagate this error somehow
*res_body.lock().unwrap() = ResponseBody::Done(vec![]);
if let Some(ref sender) = done_sender {
let _ = sender.send(Data::Done);
}
let _ = done_sender.send(Data::Done);
}
}
});
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.