Fix PR diff

This commit is contained in:
Andras Schmelczer 2025-06-08 20:20:13 +01:00
parent 86e158c7c5
commit b25bc40851
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C
4 changed files with 5 additions and 26 deletions

View file

@ -2,7 +2,6 @@ database:
databases_directory_path: databases
max_connections_per_vault: 12
cursor_timeout_seconds: 60
cursor_broadcast_interval_seconds: 1
server:
host: 0.0.0.0
port: 3000

View file

@ -50,7 +50,6 @@ impl Cursors {
}));
drop(vault_to_cursors); // Explicitly drop the lock before broadcasting to avoid deadlock
self.broadcast_cursors().await;
}
@ -70,17 +69,13 @@ impl Cursors {
pub fn start_background_task(self) {
tokio::spawn(async move {
self.run_backround_task().await;
loop {
self.remove_expired_cursors().await;
tokio::time::sleep(Duration::from_secs(1)).await;
}
});
}
async fn run_backround_task(&self) {
loop {
self.remove_expired_cursors().await;
tokio::time::sleep(self.config.cursor_broadcast_interval).await;
}
}
async fn remove_expired_cursors(&self) {
let mut vault_to_cursors = self.vault_to_cursors.lock().await;

View file

@ -5,8 +5,7 @@ use serde::{Deserialize, Serialize};
use serde_with::serde_as;
use crate::consts::{
DEFAULT_CURSOR_BROADCAST_INTERVAL, DEFAULT_CURSOR_TIMEOUT, DEFAULT_DATABASES_DIRECTORY_PATH,
DEFAULT_MAX_CONNECTIONS_PER_VAULT,
DEFAULT_CURSOR_TIMEOUT, DEFAULT_DATABASES_DIRECTORY_PATH, DEFAULT_MAX_CONNECTIONS_PER_VAULT,
};
#[serde_with::serde_as]
@ -21,13 +20,6 @@ pub struct DatabaseConfig {
#[serde(default = "default_cursor_timeout", rename = "cursor_timeout_seconds")]
#[serde_as(as = "serde_with::DurationSeconds<u64>")]
pub cursor_timeout: Duration,
#[serde(
default = "default_cursor_broadcast_interval",
rename = "cursor_broadcast_interval_seconds"
)]
#[serde_as(as = "serde_with::DurationSeconds<u64>")]
pub cursor_broadcast_interval: Duration,
}
fn default_databases_directory_path() -> PathBuf {
@ -45,18 +37,12 @@ fn default_cursor_timeout() -> Duration {
DEFAULT_CURSOR_TIMEOUT
}
fn default_cursor_broadcast_interval() -> Duration {
debug!("Using default cursor broadcast interval: {DEFAULT_CURSOR_BROADCAST_INTERVAL:?}");
DEFAULT_CURSOR_BROADCAST_INTERVAL
}
impl Default for DatabaseConfig {
fn default() -> Self {
Self {
databases_directory_path: default_databases_directory_path(),
max_connections_per_vault: default_max_connections_per_vault(),
cursor_timeout: default_cursor_timeout(),
cursor_broadcast_interval: default_cursor_broadcast_interval(),
}
}
}

View file

@ -5,7 +5,6 @@ pub const DEFAULT_CONFIG_PATH: &str = "config.yml";
pub const DEFAULT_DATABASES_DIRECTORY_PATH: &str = "databases";
pub const DEFAULT_MAX_CONNECTIONS_PER_VAULT: u32 = 12;
pub const DEFAULT_CURSOR_TIMEOUT: Duration = Duration::from_secs(60);
pub const DEFAULT_CURSOR_BROADCAST_INTERVAL: Duration = Duration::from_secs(1);
pub const DEFAULT_HOST: &str = "127.0.0.1";
pub const DEFAULT_PORT: u16 = 3000;