use mutex_map for url preview lock

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk 2024-07-17 02:48:43 +00:00
parent b0ac5255c8
commit b116984e46
2 changed files with 10 additions and 16 deletions

View file

@ -1,6 +1,6 @@
#![allow(deprecated)]
use std::{io::Cursor, sync::Arc, time::Duration};
use std::{io::Cursor, time::Duration};
use axum::extract::State;
use axum_client_ip::InsecureClientIp;
@ -656,16 +656,7 @@ async fn get_url_preview(services: &Services, url: &str) -> Result<UrlPreviewDat
}
// ensure that only one request is made per URL
let mutex_request = Arc::clone(
services
.media
.url_preview_mutex
.write()
.await
.entry(url.to_owned())
.or_default(),
);
let _request_lock = mutex_request.lock().await;
let _request_lock = services.media.url_preview_mutex.lock(url).await;
match services.media.get_url_preview(url).await {
Some(preview) => Ok(preview),