Skip to content

Commit

Permalink
Get rid of parking_lot
Browse files Browse the repository at this point in the history
  • Loading branch information
GnomedDev committed Mar 23, 2024
1 parent 7695c33 commit a679d7e
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 62 deletions.
55 changes: 0 additions & 55 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ axum = "0.7"
toml = "0.8"
md-5 = "0.10"
hmac = "0.12"
parking_lot = "0.12"
anyhow = "1"
subtle = "2"
serde_json = "1.0.81"
Expand Down
19 changes: 13 additions & 6 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ fn add_bearer<'de, D: serde::Deserializer<'de>>(deserializer: D) -> Result<Heade
}

struct State {
members: parking_lot::RwLock<HashMap<DiscordUserId, PatreonTierInfo>>,
members: std::sync::RwLock<HashMap<DiscordUserId, PatreonTierInfo>>,
refresh_task: tokio::sync::mpsc::Sender<()>,
reqwest: reqwest::Client,
config: Config,
Expand All @@ -100,12 +100,16 @@ struct FetchMember {

async fn fetch_member(axum::extract::Path(payload): axum::extract::Path<FetchMember>) -> impl axum::response::IntoResponse {
let state = STATE.get().unwrap();
axum::Json(state.members.read().get(&payload.member_id).copied())
let members = state.members.read().expect("poison");

axum::Json(members.get(&payload.member_id).copied())
}

async fn fetch_members() -> impl axum::response::IntoResponse {
let state = STATE.get().unwrap();
axum::Json(state.members.read().clone())
let members = state.members.read().expect("poison");

axum::Json(members.clone())
}

async fn refresh_members() {
Expand Down Expand Up @@ -152,7 +156,7 @@ async fn main() -> Result<()> {
STATE.set(State {
config,
reqwest: reqwest::Client::new(),
members: parking_lot::RwLock::new(HashMap::new()),
members: std::sync::RwLock::new(HashMap::new()),
refresh_task: {
let (tx, mut rx) = tokio::sync::mpsc::channel(1);

Expand Down Expand Up @@ -228,7 +232,10 @@ async fn fill_members() -> Result<usize> {
(reqwest::header::AUTHORIZATION, state.config.creator_access_token.clone())
]);

let mut members = HashMap::with_capacity(state.members.read().len());
let mut members = {
let members = state.members.read().expect("poison");
HashMap::with_capacity(members.len())
};

while let Some(cursor) = next_cursor {
let mut url = url.clone();
Expand All @@ -255,7 +262,7 @@ async fn fill_members() -> Result<usize> {
members.shrink_to_fit();

let len = members.len();
*state.members.write() = members;
*state.members.write().expect("poison") = members;
Ok(len)
}

Expand Down

0 comments on commit a679d7e

Please sign in to comment.