Optimize mutex usage in fetch by locking once and using scoped MutexGuard (#34737)

Signed-off-by: Wulan Seruniati Salim <wulanseruniati@gmail.com>
This commit is contained in:
Wulan Seruniati Salim 2024-12-22 18:14:57 +07:00 committed by GitHub
parent b4bea0daf6
commit 2ab66ce678
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -101,17 +101,11 @@ pub type DoneChannel = Option<(TokioSender<Data>, TokioReceiver<Data>)>;
pub async fn fetch(request: &mut Request, target: Target<'_>, context: &FetchContext) {
// Steps 7,4 of https://w3c.github.io/resource-timing/#processing-model
// rev order okay since spec says they're equal - https://w3c.github.io/resource-timing/#dfn-starttime
context
.timing
.lock()
.unwrap()
.set_attribute(ResourceAttribute::FetchStart);
context
.timing
.lock()
.unwrap()
.set_attribute(ResourceAttribute::StartTime(ResourceTimeValue::FetchStart));
{
let mut timing_guard = context.timing.lock().unwrap();
timing_guard.set_attribute(ResourceAttribute::FetchStart);
timing_guard.set_attribute(ResourceAttribute::StartTime(ResourceTimeValue::FetchStart));
}
fetch_with_cors_cache(request, &mut CorsCache::default(), target, context).await;
}