Absender: Timo Sandmann
Datum: Mo, 22.10.2007 13:52:01
In-reply-to:
<8354DF7B-C075-4E30-B922-33DE896B98AC@xxxxxxxxxxxxxxx>
References:
<812F86EC9E1A96489D5E83C2AB7D68860157848D@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <8354DF7B-C075-4E30-B922-33DE896B98AC@xxxxxxxxxxxxxxx>
Am 22.10.2007 um 11:24 schrieb Timo Sandmann:
Also irgendwas ist da aber noch merkwürdig (oder ich versteh's falsch):Wenn Verhalten 1 das Verhalten 2 aufruft, ist 2->caller == 1.Wenn Verhalten 1 außerdem cancel_behaviour(2) aufruft, ist cancel- >caller == 1. Trifft nun die Abbruchbedingung zu, ruft cancel deactivateCalled... (2) auf, was alle Verhalten deaktiviert, die 2 gestartet hat und deren Caller werden jeweils gelöscht. Dann wird deactivateBehaviour(2) aufgerufen (bevor bot_behave() in die nächste Runde geht), was 2 selbst deaktiviert und den Caller von 2 löscht. Abschließend wird return_from_behaviour(cancel) aufgerufen, was cancel deaktiviert und den cancel->caller aktiviert. cancel->caller == 1, also müsste doch wieder 1 gestartet werden.Aber wo ist jetzt der Denkfehler? Ich seh grad kein Problem mehr :-/
http://www.heise.de/ct/projekte/machmit/ctbot/ticket/150
Gruß Timo