···
use std::collections::{HashMap, HashSet};
use std::time::{Duration, UNIX_EPOCH};
use tokio::net::{TcpListener, ToSocketAddrs};
17
-
use tokio::task::block_in_place;
17
+
use tokio::task::spawn_blocking;
use tokio_util::sync::CancellationToken;
use crate::storage::{LinkReader, StorageStats};
···
const INDEX_BEGAN_AT_TS: u64 = 1738083600; // TODO: not this
37
+
fn to500(e: tokio::task::JoinError) -> http::StatusCode {
38
+
eprintln!("handler join error: {e}");
39
+
http::StatusCode::INTERNAL_SERVER_ERROR
pub async fn serve<S, A>(store: S, addr: A, stay_alive: CancellationToken) -> anyhow::Result<()>
···
let store = store.clone();
48
-
move |accept| async { block_in_place(|| hello(accept, store)) }
53
+
move |accept| async {
54
+
spawn_blocking(|| hello(accept, store))
let store = store.clone();
55
-
move |accept, query| async { block_in_place(|| count_links(accept, query, store)) }
64
+
move |accept, query| async {
65
+
spawn_blocking(|| count_links(accept, query, store))
···
let store = store.clone();
move |accept, query| async {
63
-
block_in_place(|| count_distinct_dids(accept, query, store))
76
+
spawn_blocking(|| count_distinct_dids(accept, query, store))
···
let store = store.clone();
move |accept, query| async {
72
-
block_in_place(|| get_backlinks(accept, query, store))
87
+
spawn_blocking(|| get_backlinks(accept, query, store))
···
let store = store.clone();
80
-
move |accept, query| async { block_in_place(|| get_links(accept, query, store)) }
97
+
move |accept, query| async {
98
+
spawn_blocking(|| get_links(accept, query, store))
···
let store = store.clone();
move |accept, query| async {
88
-
block_in_place(|| get_distinct_dids(accept, query, store))
109
+
spawn_blocking(|| get_distinct_dids(accept, query, store))
···
let store = store.clone();
move |accept, query| async {
98
-
block_in_place(|| count_all_links(accept, query, store))
121
+
spawn_blocking(|| count_all_links(accept, query, store))
···
let store = store.clone();
move |accept, query| async {
107
-
block_in_place(|| explore_links(accept, query, store))
132
+
spawn_blocking(|| explore_links(accept, query, store))