add some logging to debug #19

This commit is contained in:
Dustin Carlino 2019-12-12 10:35:51 -08:00
parent dc2cc81249
commit ed2f703e85
4 changed files with 18 additions and 6 deletions

View File

@ -330,6 +330,8 @@ impl<'a> Timer<'a> {
for (idx, req) in requests.into_iter().enumerate() {
let tx = tx.clone();
scope.execute(move || {
// TODO Can we catch panics here, dump a better stacktrace? ezgui runner does
// this
tx.send((idx, cb(req))).unwrap();
});
}

View File

@ -298,6 +298,11 @@ pub fn spawn_agents_around(i: IntersectionID, ui: &mut UI, ctx: &EventCtx) {
let sim = &mut ui.primary.sim;
let mut rng = ui.primary.current_flags.sim_flags.make_rng();
let mut timer = Timer::new(format!(
"spawning agents around {} (rng seed {:?})",
i, ui.primary.current_flags.sim_flags.rng_seed
));
for l in &map.get_i(i).incoming_lanes {
let lane = map.get_l(*l);
if lane.is_driving() || lane.is_biking() {
@ -348,7 +353,7 @@ pub fn spawn_agents_around(i: IntersectionID, ui: &mut UI, ctx: &EventCtx) {
}
}
sim.spawn_all_trips(map, &mut Timer::throwaway(), false);
sim.spawn_all_trips(map, &mut timer, false);
sim.step(map, SMALL_DT);
ui.recalculate_current_selection(ctx);
}

View File

@ -1,16 +1,17 @@
use fast_paths::{NodeId, ShortestPath};
use serde::{Deserialize, Deserializer, Serialize};
use std::collections::BTreeMap;
use std::fmt::Debug;
// TODO Upstream this in fast_paths when this is more solid.
#[derive(Serialize)]
pub struct NodeMap<T: Copy + Ord + Serialize> {
pub struct NodeMap<T: Copy + Ord + Debug + Serialize> {
#[serde(skip_serializing)]
node_to_id: BTreeMap<T, NodeId>,
id_to_node: Vec<T>,
}
impl<T: Copy + Ord + Serialize> NodeMap<T> {
impl<T: Copy + Ord + Debug + Serialize> NodeMap<T> {
pub fn new() -> NodeMap<T> {
NodeMap {
node_to_id: BTreeMap::new(),
@ -29,7 +30,11 @@ impl<T: Copy + Ord + Serialize> NodeMap<T> {
}
pub fn get(&self, node: T) -> NodeId {
self.node_to_id[&node]
if let Some(id) = self.node_to_id.get(&node) {
*id
} else {
panic!("{:?} not in NodeMap", node);
}
}
pub fn translate(&self, path: &ShortestPath) -> Vec<T> {
@ -44,7 +49,7 @@ impl<T: Copy + Ord + Serialize> NodeMap<T> {
pub fn deserialize_nodemap<
'de,
D: Deserializer<'de>,
T: Deserialize<'de> + Copy + Ord + Serialize,
T: Deserialize<'de> + Copy + Ord + Debug + Serialize,
>(
d: D,
) -> Result<NodeMap<T>, D::Error> {

View File

@ -17,7 +17,7 @@ pub struct SidewalkPathfinder {
path_calc: ThreadLocal<RefCell<PathCalculator>>,
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Debug, Serialize, Deserialize)]
enum Node {
// false is src_i, true is dst_i
SidewalkEndpoint(LaneID, bool),