Use tokio::sync::mutex for Crawls

This commit is contained in:
2023-07-19 23:02:25 -04:00
parent d17f909312
commit e6a37703be
3 changed files with 13 additions and 14 deletions

View File

@@ -133,9 +133,7 @@ pub async fn post(
let receiver = crawl_scheduler.schedule(feed.feed_id).await;
{
let mut crawls = crawls.lock().map_err(|_| {
AddFeedError::CreateFeedError(add_feed.url.clone(), Error::InternalServerError)
})?;
let mut crawls = crawls.lock().await;
crawls.insert(feed.feed_id, receiver);
}
@@ -164,7 +162,7 @@ pub async fn stream(
State(crawls): State<Crawls>,
) -> Result<impl IntoResponse> {
let receiver = {
let mut crawls = crawls.lock().expect("crawls lock poisoned");
let mut crawls = crawls.lock().await;
crawls.remove(&id.as_uuid())
}
.ok_or_else(|| Error::NotFound("feed stream", id.as_uuid()))?;