Better trace messages from dependency tracking

This commit is contained in:
Tony Garnock-Jones 2022-02-03 22:57:21 +01:00
parent 28b0c5b4d5
commit d820601eea
1 changed files with 9 additions and 8 deletions

View File

@ -54,8 +54,8 @@ fn run(t: &mut Activation, ds: Arc<Cap>, service_name: AnyValue) -> ActorResult
} }
let obstacle_count = t.named_field("obstacle_count", 1isize); let obstacle_count = t.named_field("obstacle_count", 1isize);
t.dataflow(enclose!((obstacle_count) move |t| { t.dataflow(enclose!((service_name, obstacle_count) move |t| {
tracing::trace!(obstacle_count = ?t.get(&obstacle_count)); tracing::trace!(?service_name, obstacle_count = ?t.get(&obstacle_count));
Ok(()) Ok(())
}))?; }))?;
@ -74,24 +74,25 @@ fn run(t: &mut Activation, ds: Arc<Cap>, service_name: AnyValue) -> ActorResult
}) })
})?; })?;
let depender = service_name.clone();
enclose!((ds, obstacle_count) during!( enclose!((ds, obstacle_count) during!(
t, ds, language(), <depends-on #(&service_name) $dependee>, t, ds, language(), <depends-on #(&depender) $dependee>,
enclose!((ds, obstacle_count) move |t: &mut Activation| { enclose!((service_name, ds, obstacle_count) move |t: &mut Activation| {
if let Ok(dependee) = language().parse::<service::ServiceState>(&dependee) { if let Ok(dependee) = language().parse::<service::ServiceState>(&dependee) {
tracing::trace!(on = ?dependee, "new dependency"); tracing::trace!(?service_name, ?dependee, "new dependency");
ds.assert(t, language(), &service::RequireService { ds.assert(t, language(), &service::RequireService {
service_name: dependee.service_name, service_name: dependee.service_name,
}); });
} else { } else {
tracing::warn!(on = ?dependee, "cannot deduce dependee service name"); tracing::warn!(?service_name, ?dependee, "cannot deduce dependee service name");
} }
counter::adjust(t, &obstacle_count, 1); counter::adjust(t, &obstacle_count, 1);
let d = &dependee.clone(); let d = &dependee.clone();
during!(t, ds, language(), #d, enclose!( during!(t, ds, language(), #d, enclose!(
(obstacle_count, dependee) move |t: &mut Activation| { (service_name, obstacle_count, dependee) move |t: &mut Activation| {
tracing::trace!(on = ?dependee, "dependency satisfied"); tracing::trace!(?service_name, ?dependee, "dependency satisfied");
counter::adjust(t, &obstacle_count, -1); counter::adjust(t, &obstacle_count, -1);
Ok(()) Ok(())
})); }));