From 986162e926401020ec94de48a81c8f4ac94470a7 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sun, 21 Jul 2024 19:25:03 +0200 Subject: [PATCH] refactor(repo): use register command for start --- server/src/repo/mod.rs | 18 +++++++++--------- server/src/web/api/mod.rs | 1 - 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/server/src/repo/mod.rs b/server/src/repo/mod.rs index cfccb4a..4997b8a 100644 --- a/server/src/repo/mod.rs +++ b/server/src/repo/mod.rs @@ -41,7 +41,6 @@ impl SharedState { pub fn new( repos_dir: impl AsRef, conn: DbConn, - repos: HashMap>)>, ) -> Self { let (tx, rx) = unbounded_channel(); @@ -50,7 +49,7 @@ impl SharedState { conn, rx: Mutex::new(rx), tx, - repos: RwLock::new(repos), + repos: RwLock::new(Default::default()), } } } @@ -63,7 +62,6 @@ pub fn start( ) -> crate::Result { std::fs::create_dir_all(repos_dir.as_ref())?; - let mut repos = HashMap::new(); let repo_ids: Vec = rt.block_on( entity::prelude::Repo::find() .select_only() @@ -72,11 +70,7 @@ pub fn start( .all(&conn), )?; - for id in repo_ids { - repos.insert(id, Default::default()); - } - - let state = Arc::new(SharedState::new(repos_dir, conn, repos)); + let state = Arc::new(SharedState::new(repos_dir, conn)); for _ in 0..actors { let actor = Actor::new(rt.clone(), Arc::clone(&state)); @@ -84,5 +78,11 @@ pub fn start( std::thread::spawn(|| actor.run()); } - Ok(Handle::new(&state)) + let handle = Handle::new(&state); + + for id in repo_ids { + rt.block_on(handle.register_repo(id))?; + } + + Ok(handle) } diff --git a/server/src/web/api/mod.rs b/server/src/web/api/mod.rs index dc99e53..07395fc 100644 --- a/server/src/web/api/mod.rs +++ b/server/src/web/api/mod.rs @@ -1,5 +1,4 @@ mod pagination; -mod repo; use crate::db; use pagination::PaginatedResponse;