Migrate to parking_lot

This commit is contained in:
2026-08-20 00:07:09 +03:00
parent bf805b79e5
commit 66f8a83dec
13 changed files with 85 additions and 73 deletions
+11 -10
View File
@@ -23,7 +23,8 @@ use iced_core::Padding;
use iced_core::border::Radius;
use iced_core::svg::Handle;
use std::ops::Deref;
use std::sync::{Arc, Mutex};
use std::sync::Arc;
use parking_lot::Mutex;
#[derive(Clone)]
pub struct RepetitionsState {
@@ -47,7 +48,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
let selected_set = self.selected_deck_mut().unwrap();
if selected_set.append_mode == AppendMode::Full {
Self::append_all_words(&mut clone.lock().unwrap(), selected_set);
Self::append_all_words(&mut clone.lock(), selected_set);
selected_set.existing_words_indices = selected_set.available_words_indices.clone();
} else {
if selected_set
@@ -80,7 +81,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
}
fn navigated(&mut self) {
let index = self.selected_deck_index.unwrap();
let state = self.state.lock().unwrap();
let state = self.state.lock();
if let Some(global_deck) = state.decks.get(index) {
if global_deck.id != self.selected_deck().unwrap().id {
drop(state);
@@ -116,7 +117,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
self.clear_selection();
let deck = self.decks.remove(index);
if deck.id.is_valid() {
let mut state = self.state.lock().unwrap();
let mut state = self.state.lock();
state.decks.remove(index);
self.decks = self
.decks
@@ -137,7 +138,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
self.select_deck(index);
let deck = self.selected_deck().unwrap();
if deck.existing_words_indices.is_none() {
let state = self.state.lock().unwrap();
let state = self.state.lock();
let added: Vec<_> = load_stats_of_deck(deck, &state.connection)
.iter()
.map(|c| self.word_id_index_map[&c.word_id])
@@ -151,7 +152,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
}
Save => {
let mut deck = self.selected_deck().unwrap().clone();
let mut state = self.state.lock().unwrap();
let mut state = self.state.lock();
{
update_deck(&mut deck.general_settings, &state.connection);
if let Some(index) = deck.index {
@@ -176,7 +177,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
deck.general_settings.filter = value;
}
TryFilter => {
let state = self.state.lock().unwrap();
let state = self.state.lock();
let deck = self.selected_deck().unwrap();
let count = deck.get_word_list(&state).len();
drop(state);
@@ -220,7 +221,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
}
let deck = self.selected_deck().unwrap();
let mut state = self.state.lock().unwrap();
let mut state = self.state.lock();
Self::append_words(&mut state, &deck.general_settings, adding.into_iter());
}
}
@@ -253,7 +254,7 @@ impl NavigatedPage<RepetitionsMessage> for RepetitionsState {
impl RepetitionsState {
pub(crate) fn new(state: Arc<Mutex<AppState>>) -> RepetitionsState {
let state_ = state.lock().unwrap();
let state_ = state.lock();
let mut map = HashMap::with_capacity(state_.dictionary.len());
state_
@@ -408,7 +409,7 @@ impl RepetitionsState {
fn activity_bar(&self, deck: &DeckSettings) -> Element<'_, RepetitionsMessage> {
const MAX_DAY_COUNT: f32 = 128.0;
let state = self.state.lock().unwrap();
let state = self.state.lock();
let history = state.activity.get(&deck.id);
let mut counts: Vec<u32> = vec![0; 30 * 7];
let now = Local::now().date_naive();