From 87338ce47a6a479db6c673ccde0321cac1d5916e Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Thu, 26 Aug 2021 10:16:09 +0200 Subject: [PATCH] Move debt reporter into syndicate-server --- syndicate-server/examples/producer.rs | 1 - syndicate-server/src/main.rs | 15 ++++++++++++++- syndicate/src/actor.rs | 17 ----------------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/syndicate-server/examples/producer.rs b/syndicate-server/examples/producer.rs index cd9098c..598ff22 100644 --- a/syndicate-server/examples/producer.rs +++ b/syndicate-server/examples/producer.rs @@ -32,7 +32,6 @@ fn says(who: AnyValue, what: AnyValue) -> AnyValue { #[tokio::main] async fn main() -> Result<(), Box> { syndicate::convenient_logging()?; - syndicate::actor::start_debt_reporter(); Actor::new().boot(syndicate::name!("producer"), |t| { let ac = t.actor.clone(); let boot_account = Arc::clone(t.account()); diff --git a/syndicate-server/src/main.rs b/syndicate-server/src/main.rs index e51dde9..70f3e68 100644 --- a/syndicate-server/src/main.rs +++ b/syndicate-server/src/main.rs @@ -87,7 +87,20 @@ async fn main() -> Result<(), Box> { tracing::trace!("startup"); if config.debt_reporter { - syndicate::actor::start_debt_reporter(); + Actor::new().boot(syndicate::name!("debt-reporter"), |t| { + t.state.linked_task(syndicate::name!("tick"), async { + let mut timer = tokio::time::interval(core::time::Duration::from_secs(1)); + loop { + timer.tick().await; + for (id, (name, debt)) in syndicate::actor::ACCOUNTS.read().unwrap().iter() { + let _enter = name.enter(); + tracing::info!(id, debt = debug( + debt.load(std::sync::atomic::Ordering::Relaxed))); + } + } + }); + Ok(()) + }); } let ds = Cap::new(&Actor::create_and_start(syndicate::name!("dataspace"), Dataspace::new())); diff --git a/syndicate/src/actor.rs b/syndicate/src/actor.rs index da62a14..5743d61 100644 --- a/syndicate/src/actor.rs +++ b/syndicate/src/actor.rs @@ -376,23 +376,6 @@ preserves_schema::support::lazy_static! { RwLock::new(Map::new()); } -/// Starts a "debt reporter" actor which periodically logs information about active [`Account`]s. -pub fn start_debt_reporter() { - Actor::new().boot(crate::name!("debt-reporter"), |t| { - t.state.linked_task(crate::name!("tick"), async { - let mut timer = tokio::time::interval(core::time::Duration::from_secs(1)); - loop { - timer.tick().await; - for (id, (name, debt)) in ACCOUNTS.read().unwrap().iter() { - let _enter = name.enter(); - tracing::info!(id, debt = debug(debt.load(Ordering::Relaxed))); - } - } - }); - Ok(()) - }); -} - impl TryFrom<&AnyValue> for Synced { type Error = ParseError; fn try_from(value: &AnyValue) -> Result {