Merge pull request #158 from Baptistemontan/use_cookie_deadlock

Fixed a deadlock with `use_cookie`
This commit is contained in:
Marc-Stefan Cassola 2024-08-23 18:01:10 +01:00 committed by GitHub
commit 05de93482f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -188,22 +188,19 @@ where
if !has_expired { if !has_expired {
let ssr_cookies_header_getter = Arc::clone(&ssr_cookies_header_getter); let ssr_cookies_header_getter = Arc::clone(&ssr_cookies_header_getter);
jar.update_value(|jar| { let new_cookie = jar.try_update_value(|jar| {
if let Some(new_jar) = load_and_parse_cookie_jar(ssr_cookies_header_getter) { *jar = load_and_parse_cookie_jar(ssr_cookies_header_getter)?;
*jar = new_jar;
set_cookie.set(
jar.get(cookie_name) jar.get(cookie_name)
.and_then(|c| { .and_then(|c| {
C::decode(c.value()) C::decode(c.value())
.map_err(|err| on_error(CodecError::Decode(err))) .map_err(|err| on_error(CodecError::Decode(err)))
.ok() .ok()
}) })
.or(default_value), .or(default_value)
);
}
}); });
set_cookie.set(new_cookie.flatten());
handle_expiration(delay, set_cookie); handle_expiration(delay, set_cookie);
} else { } else {
debug_warn!( debug_warn!(