c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: [ct-bot] Bug in bot_cancel_behaviour

Absender: Timo Sandmann
Datum: Mi, 18.05.2011 19:04:51
In-reply-to: <096FD558C4D20046A1BABE72DFF0C6C33F32E91812@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
References: <096FD558C4D20046A1BABE72DFF0C6C33F32E91812@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>


Hallo Frank,

das kommt mir bekannt vor, genau dieses Feature hatte vor einiger Zeit schon mal ergänzt, weil ich es für ein neues Verhalten brauchte. Scheinbar habe ich die Änderung am Cancel-Verhalten dann aber nicht ins SVN committet. Ich schaue mir das noch mal an und ergänze es entsprechend.

Gruß, 
Timo

Am 18.05.2011 um 14:51 schrieb Menzel, Frank IT-OS:
> Hallo Timo,
> bin hier auf einen Bug gestoßen.
> Das Verhalten entfernt ein anderes Verhalten aus der internen Überwachungsliste, sobald dieses nicht mehr den Status BEHAVIOUR_ACTIVE hat. Wenn aber das zu überwachende Verhalten selbst Unterverhalten (bot_turn ..) aufruft, dann wird das Hauptverhalten selbst  temporär inaktiviert. Genau dann aber fliegt es sofort  aus der Überwachungsliste raus und läuft endlos weiter. Es darf nur rausfliegen, wenn es nicht ein anderes Unterverhalten gerade gestartet hat.
> Ich habe die entsprechende Zeile dafür bei mir erweitert (Vergleich mit subresult) und scheint so des Rätsels Lösung zu sein:
> 
> ((jobs[i].beh->active != BEHAVIOUR_ACTIVE && jobs[i].beh->subResult != BEHAVIOUR_SUBRUNNING) || jobs[i].cond == NULL) {
> 
> Gruß, Frank