From: ian Date: Sun, 27 Jul 2008 13:53:18 +0000 (+0000) Subject: abandon infinite loop in report_nextseg sooner X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=15cf7c20350f72419f0c61711e90fb175fc0bb2d;p=trains.git abandon infinite loop in report_nextseg sooner --- diff --git a/hostside/safety.c b/hostside/safety.c index bdcdbfe..bea01b3 100644 --- a/hostside/safety.c +++ b/hostside/safety.c @@ -1014,8 +1014,14 @@ static int report_nextseg(TrackLocation *t, struct TrackAdvanceContext *c, char flags[6]; int r; + u->lookahead++; + if (u->lookahead > (int)(NUM_SEGMENTS * 1.5)) { + ouprintf(" [... infinite loop!]\n"); + abort(); + } + if (u->done_fdet) /* we've had foredetect */ - if (++u->lookahead > u->train->plan_lookahead_nsegs) + if (u->lookahead > u->train->plan_lookahead_nsegs) return -1; flags[0]= 0;