blob: 973f3d42eaf26359b6fdfd46cddff66a6bc30788 [file] [log] [blame]
Neels Hofmeyr988f6d72019-10-04 20:37:17 +02001
2
3test_osmo_fsm_term_safely()
Neels Hofmeyr223d66a2019-03-23 23:38:43 +01004DLGLOBAL DEBUG scene_alloc()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01005DLGLOBAL DEBUG test(root){alive}: Allocated
6DLGLOBAL DEBUG test(root){alive}: Allocated
7DLGLOBAL DEBUG test(root){alive}: is child of test(root)
Neels Hofmeyr223d66a2019-03-23 23:38:43 +01008DLGLOBAL DEBUG test(_branch0){alive}: Allocated
9DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +010010DLGLOBAL DEBUG test(_branch0){alive}: Allocated
11DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
12DLGLOBAL DEBUG test(root){alive}: Allocated
13DLGLOBAL DEBUG test(root){alive}: is child of test(root)
14DLGLOBAL DEBUG test(_branch1){alive}: Allocated
15DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
16DLGLOBAL DEBUG test(_branch1){alive}: Allocated
17DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
Neels Hofmeyr223d66a2019-03-23 23:38:43 +010018DLGLOBAL DEBUG test(other){alive}: Allocated
19DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
20DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
21DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
22DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +010023DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
24DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
25DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
26DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
Neels Hofmeyr3b414a42019-04-08 00:33:53 +020027DLGLOBAL DEBUG ------ before term cascade, got:
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +010028DLGLOBAL DEBUG root
Neels Hofmeyr3b414a42019-04-08 00:33:53 +020029DLGLOBAL DEBUG _branch0
30DLGLOBAL DEBUG __twig0a
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +010031DLGLOBAL DEBUG __twig0b
32DLGLOBAL DEBUG _branch1
33DLGLOBAL DEBUG __twig1a
34DLGLOBAL DEBUG __twig1b
35DLGLOBAL DEBUG other
36DLGLOBAL DEBUG ---
37DLGLOBAL DEBUG --- term at root
38DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
39DLGLOBAL DEBUG test(root){alive}: pre_term()
40DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
41DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
42DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
43DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
44DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
45DLGLOBAL DEBUG 1 (__twig1b.cleanup())
46DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
47DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
48DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
49DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
50DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
51DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
52DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
53DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
54DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
55DLGLOBAL DEBUG 1 (__twig1b.cleanup())
56DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
57DLGLOBAL DEBUG 0 (-)
58DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(root)
59DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
60DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
61DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
62DLGLOBAL DEBUG 1 (__twig1a.cleanup())
63DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
64DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
65DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
66DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
67DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
68DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
69DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
70DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
71DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +010072DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +010073DLGLOBAL DEBUG 1 (__twig1a.cleanup())
74DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
75DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
76DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
77DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
78DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
79DLGLOBAL DEBUG test(_branch1){alive}: No more children
80DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +010081DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +010082DLGLOBAL DEBUG 1 (__twig1a.cleanup())
83DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
84DLGLOBAL DEBUG 0 (-)
85DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +010086DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +010087DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +010088DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
89DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
90DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +010091DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
92DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
93DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
94DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
95DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
96DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +010097DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
98DLGLOBAL DEBUG test(other){alive}: pre_term()
99DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
100DLGLOBAL DEBUG test(other){alive}: cleanup()
101DLGLOBAL DEBUG test(other){alive}: scene forgets other
102DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100103DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100104DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100105DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100106DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100107DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100108DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
109DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
110DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100111DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
112DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
113DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100114DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100115DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
116DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100117DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
118DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
119DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
120DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
121DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
122DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
123DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
124DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100125DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100126DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100127DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(root)
128DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
129DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
130DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100131DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100132DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
133DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
134DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100135DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
136DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
137DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
138DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
139DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
140DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
141DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
142DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
143DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
144DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
145DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
146DLGLOBAL DEBUG test(_branch0){alive}: No more children
147DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
148DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
149DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100150DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100151DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100152DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100153DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
154DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
155DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
156DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
157DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
158DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
159DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
160DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
161DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
162DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
163DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
164DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
165DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
166DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
167DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
168DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
169DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
170DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
171DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
172DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(root)
173DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
174DLGLOBAL DEBUG test(other){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100175DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100176DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100177DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100178DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
179DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
180DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
181DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
182DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
183DLGLOBAL DEBUG test(root){alive}: No more children
184DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
185DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100186DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100187DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100188DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100189DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100190DLGLOBAL DEBUG 1 (root.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100191DLGLOBAL DEBUG test(root){alive}: cleanup()
192DLGLOBAL DEBUG test(root){alive}: scene forgets root
193DLGLOBAL DEBUG test(root){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100194DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100195DLGLOBAL DEBUG test(root){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100196DLGLOBAL DEBUG --- after term cascade:
197DLGLOBAL DEBUG --- all deallocated.
198DLGLOBAL DEBUG scene_alloc()
199DLGLOBAL DEBUG test(root){alive}: Allocated
200DLGLOBAL DEBUG test(root){alive}: Allocated
201DLGLOBAL DEBUG test(root){alive}: is child of test(root)
202DLGLOBAL DEBUG test(_branch0){alive}: Allocated
203DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
204DLGLOBAL DEBUG test(_branch0){alive}: Allocated
205DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
206DLGLOBAL DEBUG test(root){alive}: Allocated
207DLGLOBAL DEBUG test(root){alive}: is child of test(root)
208DLGLOBAL DEBUG test(_branch1){alive}: Allocated
209DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
210DLGLOBAL DEBUG test(_branch1){alive}: Allocated
211DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
212DLGLOBAL DEBUG test(other){alive}: Allocated
213DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
214DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
215DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
216DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
217DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
218DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
219DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
220DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
221DLGLOBAL DEBUG ------ before destroy-event cascade, got:
222DLGLOBAL DEBUG root
223DLGLOBAL DEBUG _branch0
224DLGLOBAL DEBUG __twig0a
225DLGLOBAL DEBUG __twig0b
226DLGLOBAL DEBUG _branch1
227DLGLOBAL DEBUG __twig1a
228DLGLOBAL DEBUG __twig1b
229DLGLOBAL DEBUG other
230DLGLOBAL DEBUG ---
231DLGLOBAL DEBUG --- destroy-event at root
232DLGLOBAL DEBUG test(root){alive}: Received Event EV_DESTROY
233DLGLOBAL DEBUG 1 (root.alive())
234DLGLOBAL DEBUG test(root){alive}: alive(EV_DESTROY)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100235DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
236DLGLOBAL DEBUG test(root){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100237DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
238DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
239DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
240DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
241DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100242DLGLOBAL DEBUG 2 (root.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100243DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
244DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
245DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100246DLGLOBAL DEBUG 3 (root.alive(),__twig1b.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100247DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100248DLGLOBAL DEBUG 4 (root.alive(),__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100249DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
250DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100251DLGLOBAL DEBUG 3 (root.alive(),__twig1b.cleanup(),_branch1.alive())
252DLGLOBAL DEBUG 2 (root.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100253DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100254DLGLOBAL DEBUG 1 (root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100255DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(root)
256DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
257DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
258DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100259DLGLOBAL DEBUG 2 (root.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100260DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
261DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
262DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100263DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
264DLGLOBAL DEBUG 3 (2*root.alive(),__twig1a.cleanup())
265DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
266DLGLOBAL DEBUG 4 (2*root.alive(),__twig1a.cleanup(),root.other_gone())
267DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
268DLGLOBAL DEBUG 3 (2*root.alive(),__twig1a.cleanup())
269DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
270DLGLOBAL DEBUG 2 (root.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100271DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100272DLGLOBAL DEBUG 3 (root.alive(),__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100273DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100274DLGLOBAL DEBUG 4 (root.alive(),__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100275DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
276DLGLOBAL DEBUG test(_branch1){alive}: No more children
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100277DLGLOBAL DEBUG 3 (root.alive(),__twig1a.cleanup(),_branch1.alive())
278DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
279DLGLOBAL DEBUG 2 (root.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100280DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100281DLGLOBAL DEBUG 1 (root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100282DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100283DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
284DLGLOBAL DEBUG 2 (root.alive(),_branch1.cleanup())
285DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
286DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
287DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100288DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100289DLGLOBAL DEBUG 3 (root.alive(),_branch1.cleanup(),other.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100290DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100291DLGLOBAL DEBUG 4 (root.alive(),_branch1.cleanup(),other.alive(),other.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100292DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100293DLGLOBAL DEBUG 3 (root.alive(),_branch1.cleanup(),other.alive())
294DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
295DLGLOBAL DEBUG test(other){alive}: pre_term()
296DLGLOBAL DEBUG 4 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
297DLGLOBAL DEBUG test(other){alive}: cleanup()
298DLGLOBAL DEBUG test(other){alive}: scene forgets other
299DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100300DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100301DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100302DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100303DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100304DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100305DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
306DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
307DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100308DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
309DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
310DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100311DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100312DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
313DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100314DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
315DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
316DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
317DLGLOBAL DEBUG 8 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
318DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
319DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
320DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
321DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100322DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100323DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100324DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(root)
325DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
326DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
327DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100328DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100329DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
330DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
331DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100332DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
333DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
334DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
335DLGLOBAL DEBUG 8 (root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
336DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
337DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
338DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
339DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
340DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
341DLGLOBAL DEBUG 8 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
342DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
343DLGLOBAL DEBUG test(_branch0){alive}: No more children
344DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
345DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
346DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100347DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100348DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100349DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100350DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
351DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
352DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
353DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
354DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
355DLGLOBAL DEBUG 7 (2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
356DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
357DLGLOBAL DEBUG 8 (2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.child_gone())
358DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
359DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
360DLGLOBAL DEBUG 7 (2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
361DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
362DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
363DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
364DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
365DLGLOBAL DEBUG 6 (2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
366DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
367DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
368DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
369DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(root)
370DLGLOBAL DEBUG 4 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
371DLGLOBAL DEBUG test(other){alive}: cleanup() done
372DLGLOBAL DEBUG 3 (root.alive(),_branch1.cleanup(),other.alive())
373DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(root)
374DLGLOBAL DEBUG 2 (root.alive(),_branch1.cleanup())
375DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
376DLGLOBAL DEBUG 3 (2*root.alive(),_branch1.cleanup())
377DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
378DLGLOBAL DEBUG 4 (2*root.alive(),_branch1.cleanup(),root.child_gone())
379DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
380DLGLOBAL DEBUG test(root){alive}: No more children
381DLGLOBAL DEBUG 3 (2*root.alive(),_branch1.cleanup())
382DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
383DLGLOBAL DEBUG 2 (root.alive(),_branch1.cleanup())
384DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100385DLGLOBAL DEBUG 1 (root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100386DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(root)
387DLGLOBAL DEBUG 2 (root.alive(),root.cleanup())
388DLGLOBAL DEBUG test(root){alive}: cleanup()
389DLGLOBAL DEBUG test(root){alive}: scene forgets root
390DLGLOBAL DEBUG test(root){alive}: cleanup() done
391DLGLOBAL DEBUG 1 (root.alive())
392DLGLOBAL DEBUG test(root){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100393DLGLOBAL DEBUG 0 (-)
394DLGLOBAL DEBUG --- after destroy-event cascade:
395DLGLOBAL DEBUG --- all deallocated.
396DLGLOBAL DEBUG scene_alloc()
397DLGLOBAL DEBUG test(root){alive}: Allocated
398DLGLOBAL DEBUG test(root){alive}: Allocated
399DLGLOBAL DEBUG test(root){alive}: is child of test(root)
400DLGLOBAL DEBUG test(_branch0){alive}: Allocated
401DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
402DLGLOBAL DEBUG test(_branch0){alive}: Allocated
403DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
404DLGLOBAL DEBUG test(root){alive}: Allocated
405DLGLOBAL DEBUG test(root){alive}: is child of test(root)
406DLGLOBAL DEBUG test(_branch1){alive}: Allocated
407DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
408DLGLOBAL DEBUG test(_branch1){alive}: Allocated
409DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
410DLGLOBAL DEBUG test(other){alive}: Allocated
411DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
412DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
413DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
414DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
415DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
416DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
417DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
418DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
419DLGLOBAL DEBUG ------ before term cascade, got:
420DLGLOBAL DEBUG root
421DLGLOBAL DEBUG _branch0
422DLGLOBAL DEBUG __twig0a
423DLGLOBAL DEBUG __twig0b
424DLGLOBAL DEBUG _branch1
425DLGLOBAL DEBUG __twig1a
426DLGLOBAL DEBUG __twig1b
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200427DLGLOBAL DEBUG other
428DLGLOBAL DEBUG ---
429DLGLOBAL DEBUG --- term at _branch0
430DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
431DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100432DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch0))
433DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
434DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
435DLGLOBAL DEBUG 1 (__twig0b.cleanup())
436DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
437DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
438DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
439DLGLOBAL DEBUG 2 (__twig0b.cleanup(),_branch0.alive())
440DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
441DLGLOBAL DEBUG 3 (__twig0b.cleanup(),_branch0.alive(),_branch0.child_gone())
442DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
443DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
444DLGLOBAL DEBUG 2 (__twig0b.cleanup(),_branch0.alive())
445DLGLOBAL DEBUG 1 (__twig0b.cleanup())
446DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
447DLGLOBAL DEBUG 0 (-)
448DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(_branch0)
449DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch0))
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200450DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
451DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
452DLGLOBAL DEBUG 1 (__twig0a.cleanup())
453DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
454DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
455DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
456DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
457DLGLOBAL DEBUG 2 (__twig0a.cleanup(),other.alive())
458DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
459DLGLOBAL DEBUG 3 (__twig0a.cleanup(),other.alive(),other.other_gone())
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200460DLGLOBAL DEBUG 2 (__twig0a.cleanup(),other.alive())
461DLGLOBAL DEBUG 1 (__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100462DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
463DLGLOBAL DEBUG 2 (__twig0a.cleanup(),_branch0.alive())
464DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
465DLGLOBAL DEBUG 3 (__twig0a.cleanup(),_branch0.alive(),_branch0.child_gone())
466DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
467DLGLOBAL DEBUG test(_branch0){alive}: No more children
468DLGLOBAL DEBUG 2 (__twig0a.cleanup(),_branch0.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100469DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200470DLGLOBAL DEBUG 1 (__twig0a.cleanup())
471DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
472DLGLOBAL DEBUG 0 (-)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100473DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100474DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200475DLGLOBAL DEBUG 1 (_branch0.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100476DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
477DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
478DLGLOBAL DEBUG test(_branch0){alive}: removing reference _branch0.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100479DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
480DLGLOBAL DEBUG 2 (_branch0.cleanup(),other.alive())
481DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
482DLGLOBAL DEBUG 3 (_branch0.cleanup(),other.alive(),other.other_gone())
483DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[0] = _branch0
484DLGLOBAL DEBUG 2 (_branch0.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100485DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch0))
486DLGLOBAL DEBUG test(other){alive}: pre_term()
487DLGLOBAL DEBUG 3 (_branch0.cleanup(),other.alive(),other.cleanup())
488DLGLOBAL DEBUG test(other){alive}: cleanup()
489DLGLOBAL DEBUG test(other){alive}: scene forgets other
490DLGLOBAL DEBUG test(other){alive}: removing reference other.other[1] -> _branch1
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100491DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100492DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100493DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100494DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100495DLGLOBAL DEBUG test(_branch1){alive}: EV_OTHER_GONE: Dropped reference _branch1.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100496DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
497DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch0))
498DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100499DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch0))
500DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
501DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100502DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100503DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
504DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100505DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
506DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
507DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
508DLGLOBAL DEBUG 7 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup(),_branch1.child_gone())
509DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
510DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
511DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
512DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100513DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100514DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100515DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(_branch0)
516DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch0))
517DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
518DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100519DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100520DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
521DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
522DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
523DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100524DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100525DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100526DLGLOBAL DEBUG 7 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100527DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100528DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
529DLGLOBAL DEBUG test(root){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch0))
530DLGLOBAL DEBUG test(root){alive}: pre_term()
531DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
532DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
533DLGLOBAL DEBUG 7 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.cleanup())
534DLGLOBAL DEBUG test(root){alive}: cleanup()
535DLGLOBAL DEBUG test(root){alive}: scene forgets root
536DLGLOBAL DEBUG test(root){alive}: cleanup() done
537DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
538DLGLOBAL DEBUG test(root){alive}: Deferring: will deallocate with test(_branch0)
539DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
540DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
541DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
542DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
543DLGLOBAL DEBUG 7 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup(),_branch1.child_gone())
544DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
545DLGLOBAL DEBUG test(_branch1){alive}: No more children
546DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
547DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
548DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100549DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100550DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100551DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100552DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
553DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
554DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
555DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
556DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
557DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
558DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
559DLGLOBAL DEBUG 7 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive(),root.child_gone())
560DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
561DLGLOBAL DEBUG test(root){alive}: still exists: child[0]
562DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
563DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
564DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
565DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
566DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
567DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),root.alive())
568DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
569DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
570DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
571DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(_branch0)
572DLGLOBAL DEBUG 3 (_branch0.cleanup(),other.alive(),other.cleanup())
573DLGLOBAL DEBUG test(other){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100574DLGLOBAL DEBUG 2 (_branch0.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100575DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(_branch0)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100576DLGLOBAL DEBUG 1 (_branch0.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100577DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
578DLGLOBAL DEBUG 2 (_branch0.cleanup(),root.alive())
579DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
580DLGLOBAL DEBUG 3 (_branch0.cleanup(),root.alive(),root.child_gone())
581DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
582DLGLOBAL DEBUG test(root){alive}: No more children
583DLGLOBAL DEBUG 2 (_branch0.cleanup(),root.alive())
584DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100585DLGLOBAL DEBUG 1 (_branch0.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100586DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200587DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100588DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
589DLGLOBAL DEBUG 1 (root.alive())
590DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
591DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100592DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100593DLGLOBAL DEBUG test(_branch0){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200594DLGLOBAL DEBUG --- after term cascade:
595DLGLOBAL DEBUG --- all deallocated.
596DLGLOBAL DEBUG scene_alloc()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100597DLGLOBAL DEBUG test(root){alive}: Allocated
598DLGLOBAL DEBUG test(root){alive}: Allocated
599DLGLOBAL DEBUG test(root){alive}: is child of test(root)
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200600DLGLOBAL DEBUG test(_branch0){alive}: Allocated
601DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100602DLGLOBAL DEBUG test(_branch0){alive}: Allocated
603DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
604DLGLOBAL DEBUG test(root){alive}: Allocated
605DLGLOBAL DEBUG test(root){alive}: is child of test(root)
606DLGLOBAL DEBUG test(_branch1){alive}: Allocated
607DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
608DLGLOBAL DEBUG test(_branch1){alive}: Allocated
609DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200610DLGLOBAL DEBUG test(other){alive}: Allocated
611DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
612DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
613DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
614DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100615DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
616DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
617DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
618DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200619DLGLOBAL DEBUG ------ before destroy-event cascade, got:
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100620DLGLOBAL DEBUG root
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200621DLGLOBAL DEBUG _branch0
622DLGLOBAL DEBUG __twig0a
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100623DLGLOBAL DEBUG __twig0b
624DLGLOBAL DEBUG _branch1
625DLGLOBAL DEBUG __twig1a
626DLGLOBAL DEBUG __twig1b
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200627DLGLOBAL DEBUG other
628DLGLOBAL DEBUG ---
629DLGLOBAL DEBUG --- destroy-event at _branch0
630DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_DESTROY
631DLGLOBAL DEBUG 1 (_branch0.alive())
632DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_DESTROY)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100633DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
634DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100635DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch0))
636DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
637DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100638DLGLOBAL DEBUG 2 (_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100639DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
640DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100641DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
642DLGLOBAL DEBUG 3 (2*_branch0.alive(),__twig0b.cleanup())
643DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
644DLGLOBAL DEBUG 4 (2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
645DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
646DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
647DLGLOBAL DEBUG 3 (2*_branch0.alive(),__twig0b.cleanup())
648DLGLOBAL DEBUG 2 (_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100649DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100650DLGLOBAL DEBUG 1 (_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100651DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(_branch0)
652DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch0))
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200653DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
654DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100655DLGLOBAL DEBUG 2 (_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200656DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
657DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
658DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
659DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100660DLGLOBAL DEBUG 3 (_branch0.alive(),__twig0a.cleanup(),other.alive())
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200661DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100662DLGLOBAL DEBUG 4 (_branch0.alive(),__twig0a.cleanup(),other.alive(),other.other_gone())
663DLGLOBAL DEBUG 3 (_branch0.alive(),__twig0a.cleanup(),other.alive())
664DLGLOBAL DEBUG 2 (_branch0.alive(),__twig0a.cleanup())
665DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
666DLGLOBAL DEBUG 3 (2*_branch0.alive(),__twig0a.cleanup())
667DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
668DLGLOBAL DEBUG 4 (2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
669DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
670DLGLOBAL DEBUG test(_branch0){alive}: No more children
671DLGLOBAL DEBUG 3 (2*_branch0.alive(),__twig0a.cleanup())
672DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
673DLGLOBAL DEBUG 2 (_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200674DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100675DLGLOBAL DEBUG 1 (_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100676DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100677DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
678DLGLOBAL DEBUG 2 (_branch0.alive(),_branch0.cleanup())
679DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
680DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
681DLGLOBAL DEBUG test(_branch0){alive}: removing reference _branch0.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100682DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100683DLGLOBAL DEBUG 3 (_branch0.alive(),_branch0.cleanup(),other.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100684DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100685DLGLOBAL DEBUG 4 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100686DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[0] = _branch0
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100687DLGLOBAL DEBUG 3 (_branch0.alive(),_branch0.cleanup(),other.alive())
688DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch0))
689DLGLOBAL DEBUG test(other){alive}: pre_term()
690DLGLOBAL DEBUG 4 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup())
691DLGLOBAL DEBUG test(other){alive}: cleanup()
692DLGLOBAL DEBUG test(other){alive}: scene forgets other
693DLGLOBAL DEBUG test(other){alive}: removing reference other.other[1] -> _branch1
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100694DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100695DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100696DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100697DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100698DLGLOBAL DEBUG test(_branch1){alive}: EV_OTHER_GONE: Dropped reference _branch1.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100699DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
700DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch0))
701DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100702DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch0))
703DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
704DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100705DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100706DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
707DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100708DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
709DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
710DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
711DLGLOBAL DEBUG 8 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup(),_branch1.child_gone(
712DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
713DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
714DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
715DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100716DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100717DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100718DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(_branch0)
719DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch0))
720DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
721DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100722DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100723DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
724DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
725DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
726DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100727DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100728DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100729DLGLOBAL DEBUG 8 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.othe
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100730DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100731DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
732DLGLOBAL DEBUG test(root){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch0))
733DLGLOBAL DEBUG test(root){alive}: pre_term()
734DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
735DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
736DLGLOBAL DEBUG 8 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.clea
737DLGLOBAL DEBUG test(root){alive}: cleanup()
738DLGLOBAL DEBUG test(root){alive}: scene forgets root
739DLGLOBAL DEBUG test(root){alive}: cleanup() done
740DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
741DLGLOBAL DEBUG test(root){alive}: Deferring: will deallocate with test(_branch0)
742DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
743DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
744DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
745DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
746DLGLOBAL DEBUG 8 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup(),_branch1.child_gone(
747DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
748DLGLOBAL DEBUG test(_branch1){alive}: No more children
749DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
750DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
751DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100752DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100753DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100754DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100755DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
756DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
757DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
758DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
759DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
760DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
761DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
762DLGLOBAL DEBUG 8 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive(),root.chil
763DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
764DLGLOBAL DEBUG test(root){alive}: still exists: child[0]
765DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
766DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
767DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
768DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
769DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
770DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),root.alive())
771DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
772DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
773DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
774DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(_branch0)
775DLGLOBAL DEBUG 4 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup())
776DLGLOBAL DEBUG test(other){alive}: cleanup() done
777DLGLOBAL DEBUG 3 (_branch0.alive(),_branch0.cleanup(),other.alive())
778DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(_branch0)
779DLGLOBAL DEBUG 2 (_branch0.alive(),_branch0.cleanup())
780DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
781DLGLOBAL DEBUG 3 (_branch0.alive(),_branch0.cleanup(),root.alive())
782DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
783DLGLOBAL DEBUG 4 (_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
784DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
785DLGLOBAL DEBUG test(root){alive}: No more children
786DLGLOBAL DEBUG 3 (_branch0.alive(),_branch0.cleanup(),root.alive())
787DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
788DLGLOBAL DEBUG 2 (_branch0.alive(),_branch0.cleanup())
789DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200790DLGLOBAL DEBUG 1 (_branch0.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100791DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
792DLGLOBAL DEBUG 2 (_branch0.alive(),root.alive())
793DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
794DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
795DLGLOBAL DEBUG 1 (_branch0.alive())
796DLGLOBAL DEBUG test(_branch0){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200797DLGLOBAL DEBUG 0 (-)
798DLGLOBAL DEBUG --- after destroy-event cascade:
799DLGLOBAL DEBUG --- all deallocated.
800DLGLOBAL DEBUG scene_alloc()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100801DLGLOBAL DEBUG test(root){alive}: Allocated
802DLGLOBAL DEBUG test(root){alive}: Allocated
803DLGLOBAL DEBUG test(root){alive}: is child of test(root)
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200804DLGLOBAL DEBUG test(_branch0){alive}: Allocated
805DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100806DLGLOBAL DEBUG test(_branch0){alive}: Allocated
807DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
808DLGLOBAL DEBUG test(root){alive}: Allocated
809DLGLOBAL DEBUG test(root){alive}: is child of test(root)
810DLGLOBAL DEBUG test(_branch1){alive}: Allocated
811DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
812DLGLOBAL DEBUG test(_branch1){alive}: Allocated
813DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200814DLGLOBAL DEBUG test(other){alive}: Allocated
815DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
816DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
817DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
818DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100819DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
820DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
821DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
822DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200823DLGLOBAL DEBUG ------ before term cascade, got:
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100824DLGLOBAL DEBUG root
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200825DLGLOBAL DEBUG _branch0
826DLGLOBAL DEBUG __twig0a
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100827DLGLOBAL DEBUG __twig0b
828DLGLOBAL DEBUG _branch1
829DLGLOBAL DEBUG __twig1a
830DLGLOBAL DEBUG __twig1b
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200831DLGLOBAL DEBUG other
832DLGLOBAL DEBUG ---
833DLGLOBAL DEBUG --- term at __twig0a
834DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
835DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
836DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
837DLGLOBAL DEBUG 1 (__twig0a.cleanup())
838DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
839DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
840DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
841DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
842DLGLOBAL DEBUG 2 (__twig0a.cleanup(),other.alive())
843DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
844DLGLOBAL DEBUG 3 (__twig0a.cleanup(),other.alive(),other.other_gone())
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200845DLGLOBAL DEBUG 2 (__twig0a.cleanup(),other.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100846DLGLOBAL DEBUG 1 (__twig0a.cleanup())
847DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
848DLGLOBAL DEBUG 2 (__twig0a.cleanup(),_branch0.alive())
849DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
850DLGLOBAL DEBUG 3 (__twig0a.cleanup(),_branch0.alive(),_branch0.child_gone())
851DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
852DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[1]
853DLGLOBAL DEBUG 2 (__twig0a.cleanup(),_branch0.alive())
854DLGLOBAL DEBUG 1 (__twig0a.cleanup())
855DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
856DLGLOBAL DEBUG 0 (-)
857DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
858DLGLOBAL DEBUG 1 (_branch0.alive())
859DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
860DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
861DLGLOBAL DEBUG 0 (-)
862DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
863DLGLOBAL DEBUG --- after term cascade:
864DLGLOBAL DEBUG root
865DLGLOBAL DEBUG _branch0
866DLGLOBAL DEBUG __twig0b
867DLGLOBAL DEBUG _branch1
868DLGLOBAL DEBUG __twig1a
869DLGLOBAL DEBUG __twig1b
870DLGLOBAL DEBUG other
871DLGLOBAL DEBUG --- 7 objects remain. cleaning up
872DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
873DLGLOBAL DEBUG test(root){alive}: pre_term()
874DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
875DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
876DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
877DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
878DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
879DLGLOBAL DEBUG 1 (__twig1b.cleanup())
880DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
881DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
882DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
883DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
884DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
885DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
886DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
887DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
888DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
889DLGLOBAL DEBUG 1 (__twig1b.cleanup())
890DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
891DLGLOBAL DEBUG 0 (-)
892DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(root)
893DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
894DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
895DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
896DLGLOBAL DEBUG 1 (__twig1a.cleanup())
897DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
898DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
899DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
900DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
901DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
902DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
903DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
904DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
905DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100906DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100907DLGLOBAL DEBUG 1 (__twig1a.cleanup())
908DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
909DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
910DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
911DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
912DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
913DLGLOBAL DEBUG test(_branch1){alive}: No more children
914DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100915DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100916DLGLOBAL DEBUG 1 (__twig1a.cleanup())
917DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
918DLGLOBAL DEBUG 0 (-)
919DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100920DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100921DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100922DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
923DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
924DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100925DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
926DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
927DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
928DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
929DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
930DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100931DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
932DLGLOBAL DEBUG test(other){alive}: pre_term()
933DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
934DLGLOBAL DEBUG test(other){alive}: cleanup()
935DLGLOBAL DEBUG test(other){alive}: scene forgets other
936DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200937DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100938DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200939DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100940DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr3b414a42019-04-08 00:33:53 +0200941DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100942DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
943DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
944DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100945DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
946DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
947DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100948DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100949DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
950DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100951DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
952DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
953DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
954DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
955DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
956DLGLOBAL DEBUG test(_branch0){alive}: No more children
957DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
958DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
959DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100960DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100961DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100962DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100963DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
964DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
965DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
966DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
967DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
968DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
969DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
970DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
971DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
972DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
973DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
974DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
975DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
976DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
977DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
978DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
979DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
980DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
981DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
982DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(root)
983DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
984DLGLOBAL DEBUG test(other){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100985DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100986DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100987DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100988DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
989DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
990DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
991DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
992DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
993DLGLOBAL DEBUG test(root){alive}: No more children
994DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
995DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100996DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100997DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +0100998DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +0100999DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001000DLGLOBAL DEBUG 1 (root.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001001DLGLOBAL DEBUG test(root){alive}: cleanup()
1002DLGLOBAL DEBUG test(root){alive}: scene forgets root
1003DLGLOBAL DEBUG test(root){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001004DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001005DLGLOBAL DEBUG test(root){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001006DLGLOBAL DEBUG scene_alloc()
1007DLGLOBAL DEBUG test(root){alive}: Allocated
1008DLGLOBAL DEBUG test(root){alive}: Allocated
1009DLGLOBAL DEBUG test(root){alive}: is child of test(root)
1010DLGLOBAL DEBUG test(_branch0){alive}: Allocated
1011DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
1012DLGLOBAL DEBUG test(_branch0){alive}: Allocated
1013DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
1014DLGLOBAL DEBUG test(root){alive}: Allocated
1015DLGLOBAL DEBUG test(root){alive}: is child of test(root)
1016DLGLOBAL DEBUG test(_branch1){alive}: Allocated
1017DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
1018DLGLOBAL DEBUG test(_branch1){alive}: Allocated
1019DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
1020DLGLOBAL DEBUG test(other){alive}: Allocated
1021DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
1022DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
1023DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
1024DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
1025DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
1026DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
1027DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
1028DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
1029DLGLOBAL DEBUG ------ before destroy-event cascade, got:
1030DLGLOBAL DEBUG root
1031DLGLOBAL DEBUG _branch0
1032DLGLOBAL DEBUG __twig0a
1033DLGLOBAL DEBUG __twig0b
1034DLGLOBAL DEBUG _branch1
1035DLGLOBAL DEBUG __twig1a
1036DLGLOBAL DEBUG __twig1b
1037DLGLOBAL DEBUG other
1038DLGLOBAL DEBUG ---
1039DLGLOBAL DEBUG --- destroy-event at __twig0a
1040DLGLOBAL DEBUG test(__twig0a){alive}: Received Event EV_DESTROY
1041DLGLOBAL DEBUG 1 (__twig0a.alive())
1042DLGLOBAL DEBUG test(__twig0a){alive}: alive(EV_DESTROY)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001043DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
1044DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
1045DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
1046DLGLOBAL DEBUG 2 (__twig0a.alive(),__twig0a.cleanup())
1047DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
1048DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
1049DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001050DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001051DLGLOBAL DEBUG 3 (__twig0a.alive(),__twig0a.cleanup(),other.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001052DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001053DLGLOBAL DEBUG 4 (__twig0a.alive(),__twig0a.cleanup(),other.alive(),other.other_gone())
1054DLGLOBAL DEBUG 3 (__twig0a.alive(),__twig0a.cleanup(),other.alive())
1055DLGLOBAL DEBUG 2 (__twig0a.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001056DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001057DLGLOBAL DEBUG 3 (__twig0a.alive(),__twig0a.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001058DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001059DLGLOBAL DEBUG 4 (__twig0a.alive(),__twig0a.cleanup(),_branch0.alive(),_branch0.child_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001060DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
1061DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[1]
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001062DLGLOBAL DEBUG 3 (__twig0a.alive(),__twig0a.cleanup(),_branch0.alive())
1063DLGLOBAL DEBUG 2 (__twig0a.alive(),__twig0a.cleanup())
1064DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
1065DLGLOBAL DEBUG 1 (__twig0a.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001066DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001067DLGLOBAL DEBUG 2 (__twig0a.alive(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001068DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1069DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001070DLGLOBAL DEBUG 1 (__twig0a.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001071DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001072DLGLOBAL DEBUG 0 (-)
1073DLGLOBAL DEBUG --- after destroy-event cascade:
1074DLGLOBAL DEBUG root
1075DLGLOBAL DEBUG _branch0
1076DLGLOBAL DEBUG __twig0b
1077DLGLOBAL DEBUG _branch1
1078DLGLOBAL DEBUG __twig1a
1079DLGLOBAL DEBUG __twig1b
1080DLGLOBAL DEBUG other
1081DLGLOBAL DEBUG --- 7 objects remain. cleaning up
1082DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
1083DLGLOBAL DEBUG test(root){alive}: pre_term()
1084DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1085DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
1086DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1087DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
1088DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
1089DLGLOBAL DEBUG 1 (__twig1b.cleanup())
1090DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
1091DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
1092DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
1093DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
1094DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
1095DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
1096DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
1097DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
1098DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
1099DLGLOBAL DEBUG 1 (__twig1b.cleanup())
1100DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
1101DLGLOBAL DEBUG 0 (-)
1102DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(root)
1103DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1104DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
1105DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
1106DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1107DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
1108DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
1109DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
1110DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
1111DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
1112DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
1113DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
1114DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
1115DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001116DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001117DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1118DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
1119DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
1120DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
1121DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
1122DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
1123DLGLOBAL DEBUG test(_branch1){alive}: No more children
1124DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001125DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001126DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1127DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
1128DLGLOBAL DEBUG 0 (-)
1129DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001130DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001131DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001132DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
1133DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
1134DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001135DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
1136DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
1137DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
1138DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
1139DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
1140DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001141DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
1142DLGLOBAL DEBUG test(other){alive}: pre_term()
1143DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
1144DLGLOBAL DEBUG test(other){alive}: cleanup()
1145DLGLOBAL DEBUG test(other){alive}: scene forgets other
1146DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001147DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001148DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001149DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001150DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001151DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001152DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1153DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
1154DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001155DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1156DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
1157DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001158DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001159DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
1160DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001161DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
1162DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
1163DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1164DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
1165DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
1166DLGLOBAL DEBUG test(_branch0){alive}: No more children
1167DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
1168DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
1169DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001170DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001171DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001172DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001173DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
1174DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
1175DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
1176DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
1177DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1178DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
1179DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1180DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
1181DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
1182DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
1183DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
1184DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
1185DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
1186DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1187DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1188DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
1189DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1190DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
1191DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1192DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(root)
1193DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
1194DLGLOBAL DEBUG test(other){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001195DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001196DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001197DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001198DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1199DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
1200DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1201DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
1202DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
1203DLGLOBAL DEBUG test(root){alive}: No more children
1204DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
1205DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001206DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001207DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001208DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001209DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001210DLGLOBAL DEBUG 1 (root.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001211DLGLOBAL DEBUG test(root){alive}: cleanup()
1212DLGLOBAL DEBUG test(root){alive}: scene forgets root
1213DLGLOBAL DEBUG test(root){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001214DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001215DLGLOBAL DEBUG test(root){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001216DLGLOBAL DEBUG scene_alloc()
1217DLGLOBAL DEBUG test(root){alive}: Allocated
1218DLGLOBAL DEBUG test(root){alive}: Allocated
1219DLGLOBAL DEBUG test(root){alive}: is child of test(root)
1220DLGLOBAL DEBUG test(_branch0){alive}: Allocated
1221DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
1222DLGLOBAL DEBUG test(_branch0){alive}: Allocated
1223DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
1224DLGLOBAL DEBUG test(root){alive}: Allocated
1225DLGLOBAL DEBUG test(root){alive}: is child of test(root)
1226DLGLOBAL DEBUG test(_branch1){alive}: Allocated
1227DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
1228DLGLOBAL DEBUG test(_branch1){alive}: Allocated
1229DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
1230DLGLOBAL DEBUG test(other){alive}: Allocated
1231DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
1232DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
1233DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
1234DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
1235DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
1236DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
1237DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
1238DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
1239DLGLOBAL DEBUG ------ before term cascade, got:
1240DLGLOBAL DEBUG root
1241DLGLOBAL DEBUG _branch0
1242DLGLOBAL DEBUG __twig0a
1243DLGLOBAL DEBUG __twig0b
1244DLGLOBAL DEBUG _branch1
1245DLGLOBAL DEBUG __twig1a
1246DLGLOBAL DEBUG __twig1b
1247DLGLOBAL DEBUG other
1248DLGLOBAL DEBUG ---
1249DLGLOBAL DEBUG --- term at __twig0b
1250DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
1251DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
1252DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
1253DLGLOBAL DEBUG 1 (__twig0b.cleanup())
1254DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
1255DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
1256DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
1257DLGLOBAL DEBUG 2 (__twig0b.cleanup(),_branch0.alive())
1258DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1259DLGLOBAL DEBUG 3 (__twig0b.cleanup(),_branch0.alive(),_branch0.child_gone())
1260DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
1261DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
1262DLGLOBAL DEBUG 2 (__twig0b.cleanup(),_branch0.alive())
1263DLGLOBAL DEBUG 1 (__twig0b.cleanup())
1264DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
1265DLGLOBAL DEBUG 0 (-)
1266DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
1267DLGLOBAL DEBUG 1 (_branch0.alive())
1268DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1269DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
1270DLGLOBAL DEBUG 0 (-)
1271DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
1272DLGLOBAL DEBUG --- after term cascade:
1273DLGLOBAL DEBUG root
1274DLGLOBAL DEBUG _branch0
1275DLGLOBAL DEBUG __twig0a
1276DLGLOBAL DEBUG _branch1
1277DLGLOBAL DEBUG __twig1a
1278DLGLOBAL DEBUG __twig1b
1279DLGLOBAL DEBUG other
1280DLGLOBAL DEBUG --- 7 objects remain. cleaning up
1281DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
1282DLGLOBAL DEBUG test(root){alive}: pre_term()
1283DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1284DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
1285DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1286DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
1287DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
1288DLGLOBAL DEBUG 1 (__twig1b.cleanup())
1289DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
1290DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
1291DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
1292DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
1293DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
1294DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
1295DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
1296DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
1297DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
1298DLGLOBAL DEBUG 1 (__twig1b.cleanup())
1299DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
1300DLGLOBAL DEBUG 0 (-)
1301DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(root)
1302DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1303DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
1304DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
1305DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1306DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
1307DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
1308DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
1309DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
1310DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
1311DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
1312DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
1313DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
1314DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001315DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001316DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1317DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
1318DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
1319DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
1320DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
1321DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
1322DLGLOBAL DEBUG test(_branch1){alive}: No more children
1323DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001324DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001325DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1326DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
1327DLGLOBAL DEBUG 0 (-)
1328DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001329DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001330DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001331DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
1332DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
1333DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001334DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
1335DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
1336DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
1337DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
1338DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
1339DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001340DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
1341DLGLOBAL DEBUG test(other){alive}: pre_term()
1342DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
1343DLGLOBAL DEBUG test(other){alive}: cleanup()
1344DLGLOBAL DEBUG test(other){alive}: scene forgets other
1345DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001346DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001347DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001348DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001349DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001350DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001351DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1352DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
1353DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001354DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1355DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
1356DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001357DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001358DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
1359DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
1360DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001361DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
1362DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1363DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
1364DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
1365DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1366DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1367DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
1368DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
1369DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1370DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
1371DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
1372DLGLOBAL DEBUG test(_branch0){alive}: No more children
1373DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
1374DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
1375DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001376DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001377DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001378DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001379DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
1380DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
1381DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
1382DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
1383DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1384DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
1385DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1386DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
1387DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
1388DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
1389DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
1390DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
1391DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
1392DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1393DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1394DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
1395DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1396DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
1397DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1398DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(root)
1399DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
1400DLGLOBAL DEBUG test(other){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001401DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001402DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001403DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001404DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1405DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
1406DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1407DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
1408DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
1409DLGLOBAL DEBUG test(root){alive}: No more children
1410DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
1411DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001412DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001413DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001414DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001415DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001416DLGLOBAL DEBUG 1 (root.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001417DLGLOBAL DEBUG test(root){alive}: cleanup()
1418DLGLOBAL DEBUG test(root){alive}: scene forgets root
1419DLGLOBAL DEBUG test(root){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001420DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001421DLGLOBAL DEBUG test(root){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001422DLGLOBAL DEBUG scene_alloc()
1423DLGLOBAL DEBUG test(root){alive}: Allocated
1424DLGLOBAL DEBUG test(root){alive}: Allocated
1425DLGLOBAL DEBUG test(root){alive}: is child of test(root)
1426DLGLOBAL DEBUG test(_branch0){alive}: Allocated
1427DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
1428DLGLOBAL DEBUG test(_branch0){alive}: Allocated
1429DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
1430DLGLOBAL DEBUG test(root){alive}: Allocated
1431DLGLOBAL DEBUG test(root){alive}: is child of test(root)
1432DLGLOBAL DEBUG test(_branch1){alive}: Allocated
1433DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
1434DLGLOBAL DEBUG test(_branch1){alive}: Allocated
1435DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
1436DLGLOBAL DEBUG test(other){alive}: Allocated
1437DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
1438DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
1439DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
1440DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
1441DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
1442DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
1443DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
1444DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
1445DLGLOBAL DEBUG ------ before destroy-event cascade, got:
1446DLGLOBAL DEBUG root
1447DLGLOBAL DEBUG _branch0
1448DLGLOBAL DEBUG __twig0a
1449DLGLOBAL DEBUG __twig0b
1450DLGLOBAL DEBUG _branch1
1451DLGLOBAL DEBUG __twig1a
1452DLGLOBAL DEBUG __twig1b
1453DLGLOBAL DEBUG other
1454DLGLOBAL DEBUG ---
1455DLGLOBAL DEBUG --- destroy-event at __twig0b
1456DLGLOBAL DEBUG test(__twig0b){alive}: Received Event EV_DESTROY
1457DLGLOBAL DEBUG 1 (__twig0b.alive())
1458DLGLOBAL DEBUG test(__twig0b){alive}: alive(EV_DESTROY)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001459DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
1460DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
1461DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
1462DLGLOBAL DEBUG 2 (__twig0b.alive(),__twig0b.cleanup())
1463DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
1464DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001465DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001466DLGLOBAL DEBUG 3 (__twig0b.alive(),__twig0b.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001467DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001468DLGLOBAL DEBUG 4 (__twig0b.alive(),__twig0b.cleanup(),_branch0.alive(),_branch0.child_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001469DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
1470DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001471DLGLOBAL DEBUG 3 (__twig0b.alive(),__twig0b.cleanup(),_branch0.alive())
1472DLGLOBAL DEBUG 2 (__twig0b.alive(),__twig0b.cleanup())
1473DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
1474DLGLOBAL DEBUG 1 (__twig0b.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001475DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001476DLGLOBAL DEBUG 2 (__twig0b.alive(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001477DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1478DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001479DLGLOBAL DEBUG 1 (__twig0b.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001480DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001481DLGLOBAL DEBUG 0 (-)
1482DLGLOBAL DEBUG --- after destroy-event cascade:
1483DLGLOBAL DEBUG root
1484DLGLOBAL DEBUG _branch0
1485DLGLOBAL DEBUG __twig0a
1486DLGLOBAL DEBUG _branch1
1487DLGLOBAL DEBUG __twig1a
1488DLGLOBAL DEBUG __twig1b
1489DLGLOBAL DEBUG other
1490DLGLOBAL DEBUG --- 7 objects remain. cleaning up
1491DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
1492DLGLOBAL DEBUG test(root){alive}: pre_term()
1493DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1494DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
1495DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1496DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
1497DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
1498DLGLOBAL DEBUG 1 (__twig1b.cleanup())
1499DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
1500DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
1501DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
1502DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
1503DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
1504DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
1505DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
1506DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
1507DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
1508DLGLOBAL DEBUG 1 (__twig1b.cleanup())
1509DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
1510DLGLOBAL DEBUG 0 (-)
1511DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(root)
1512DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1513DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
1514DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
1515DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1516DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
1517DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
1518DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
1519DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
1520DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
1521DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
1522DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
1523DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
1524DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001525DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001526DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1527DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
1528DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
1529DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
1530DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
1531DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
1532DLGLOBAL DEBUG test(_branch1){alive}: No more children
1533DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001534DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001535DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1536DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
1537DLGLOBAL DEBUG 0 (-)
1538DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001539DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001540DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001541DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
1542DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
1543DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001544DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
1545DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
1546DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
1547DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
1548DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
1549DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001550DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
1551DLGLOBAL DEBUG test(other){alive}: pre_term()
1552DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
1553DLGLOBAL DEBUG test(other){alive}: cleanup()
1554DLGLOBAL DEBUG test(other){alive}: scene forgets other
1555DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001556DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001557DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001558DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001559DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001560DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001561DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1562DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
1563DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001564DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
1565DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
1566DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001567DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001568DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
1569DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
1570DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001571DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
1572DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1573DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
1574DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
1575DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1576DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1577DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
1578DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
1579DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1580DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
1581DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
1582DLGLOBAL DEBUG test(_branch0){alive}: No more children
1583DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
1584DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
1585DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001586DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001587DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001588DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001589DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
1590DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
1591DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
1592DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
1593DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1594DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
1595DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1596DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
1597DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
1598DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
1599DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
1600DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
1601DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
1602DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1603DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1604DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
1605DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1606DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
1607DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1608DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(root)
1609DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
1610DLGLOBAL DEBUG test(other){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001611DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001612DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001613DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001614DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1615DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
1616DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1617DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
1618DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
1619DLGLOBAL DEBUG test(root){alive}: No more children
1620DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
1621DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001622DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001623DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001624DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001625DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001626DLGLOBAL DEBUG 1 (root.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001627DLGLOBAL DEBUG test(root){alive}: cleanup()
1628DLGLOBAL DEBUG test(root){alive}: scene forgets root
1629DLGLOBAL DEBUG test(root){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001630DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001631DLGLOBAL DEBUG test(root){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001632DLGLOBAL DEBUG scene_alloc()
1633DLGLOBAL DEBUG test(root){alive}: Allocated
1634DLGLOBAL DEBUG test(root){alive}: Allocated
1635DLGLOBAL DEBUG test(root){alive}: is child of test(root)
1636DLGLOBAL DEBUG test(_branch0){alive}: Allocated
1637DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
1638DLGLOBAL DEBUG test(_branch0){alive}: Allocated
1639DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
1640DLGLOBAL DEBUG test(root){alive}: Allocated
1641DLGLOBAL DEBUG test(root){alive}: is child of test(root)
1642DLGLOBAL DEBUG test(_branch1){alive}: Allocated
1643DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
1644DLGLOBAL DEBUG test(_branch1){alive}: Allocated
1645DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
1646DLGLOBAL DEBUG test(other){alive}: Allocated
1647DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
1648DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
1649DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
1650DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
1651DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
1652DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
1653DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
1654DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
1655DLGLOBAL DEBUG ------ before term cascade, got:
1656DLGLOBAL DEBUG root
1657DLGLOBAL DEBUG _branch0
1658DLGLOBAL DEBUG __twig0a
1659DLGLOBAL DEBUG __twig0b
1660DLGLOBAL DEBUG _branch1
1661DLGLOBAL DEBUG __twig1a
1662DLGLOBAL DEBUG __twig1b
1663DLGLOBAL DEBUG other
1664DLGLOBAL DEBUG ---
1665DLGLOBAL DEBUG --- term at _branch1
1666DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
1667DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
1668DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch1))
1669DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
1670DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
1671DLGLOBAL DEBUG 1 (__twig1b.cleanup())
1672DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
1673DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
1674DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
1675DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
1676DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
1677DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
1678DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
1679DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
1680DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
1681DLGLOBAL DEBUG 1 (__twig1b.cleanup())
1682DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
1683DLGLOBAL DEBUG 0 (-)
1684DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(_branch1)
1685DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch1))
1686DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
1687DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
1688DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1689DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
1690DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
1691DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
1692DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
1693DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
1694DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
1695DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
1696DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
1697DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001698DLGLOBAL DEBUG test(root){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch1))
1699DLGLOBAL DEBUG test(root){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001700DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001701DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
1702DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.cleanup())
1703DLGLOBAL DEBUG test(root){alive}: cleanup()
1704DLGLOBAL DEBUG test(root){alive}: scene forgets root
1705DLGLOBAL DEBUG test(root){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001706DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001707DLGLOBAL DEBUG test(root){alive}: Deferring: will deallocate with test(_branch1)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001708DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1709DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
1710DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
1711DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
1712DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
1713DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
1714DLGLOBAL DEBUG test(_branch1){alive}: No more children
1715DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001716DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001717DLGLOBAL DEBUG 1 (__twig1a.cleanup())
1718DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
1719DLGLOBAL DEBUG 0 (-)
1720DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001721DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001722DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001723DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
1724DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
1725DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001726DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
1727DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
1728DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
1729DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
1730DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
1731DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001732DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch1))
1733DLGLOBAL DEBUG test(other){alive}: pre_term()
1734DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
1735DLGLOBAL DEBUG test(other){alive}: cleanup()
1736DLGLOBAL DEBUG test(other){alive}: scene forgets other
1737DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001738DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001739DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001740DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001741DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001742DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001743DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1744DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch1))
1745DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001746DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch1))
1747DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
1748DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001749DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001750DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
1751DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001752DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
1753DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
1754DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1755DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
1756DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
1757DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
1758DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
1759DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001760DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001761DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001762DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(_branch1)
1763DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch1))
1764DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
1765DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001766DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001767DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
1768DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
1769DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001770DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
1771DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1772DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
1773DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
1774DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1775DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1776DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
1777DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
1778DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1779DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
1780DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
1781DLGLOBAL DEBUG test(_branch0){alive}: No more children
1782DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
1783DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
1784DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001785DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001786DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001787DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001788DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
1789DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
1790DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
1791DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
1792DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1793DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
1794DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1795DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
1796DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
1797DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
1798DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
1799DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
1800DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
1801DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1802DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1803DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
1804DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1805DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
1806DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1807DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(_branch1)
1808DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
1809DLGLOBAL DEBUG test(other){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001810DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001811DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(_branch1)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001812DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001813DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1814DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
1815DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1816DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
1817DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
1818DLGLOBAL DEBUG test(root){alive}: No more children
1819DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
1820DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001821DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001822DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001823DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001824DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1825DLGLOBAL DEBUG 1 (root.alive())
1826DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1827DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001828DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001829DLGLOBAL DEBUG test(_branch1){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001830DLGLOBAL DEBUG --- after term cascade:
1831DLGLOBAL DEBUG --- all deallocated.
1832DLGLOBAL DEBUG scene_alloc()
1833DLGLOBAL DEBUG test(root){alive}: Allocated
1834DLGLOBAL DEBUG test(root){alive}: Allocated
1835DLGLOBAL DEBUG test(root){alive}: is child of test(root)
1836DLGLOBAL DEBUG test(_branch0){alive}: Allocated
1837DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
1838DLGLOBAL DEBUG test(_branch0){alive}: Allocated
1839DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
1840DLGLOBAL DEBUG test(root){alive}: Allocated
1841DLGLOBAL DEBUG test(root){alive}: is child of test(root)
1842DLGLOBAL DEBUG test(_branch1){alive}: Allocated
1843DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
1844DLGLOBAL DEBUG test(_branch1){alive}: Allocated
1845DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
1846DLGLOBAL DEBUG test(other){alive}: Allocated
1847DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
1848DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
1849DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
1850DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
1851DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
1852DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
1853DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
1854DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
1855DLGLOBAL DEBUG ------ before destroy-event cascade, got:
1856DLGLOBAL DEBUG root
1857DLGLOBAL DEBUG _branch0
1858DLGLOBAL DEBUG __twig0a
1859DLGLOBAL DEBUG __twig0b
1860DLGLOBAL DEBUG _branch1
1861DLGLOBAL DEBUG __twig1a
1862DLGLOBAL DEBUG __twig1b
1863DLGLOBAL DEBUG other
1864DLGLOBAL DEBUG ---
1865DLGLOBAL DEBUG --- destroy-event at _branch1
1866DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_DESTROY
1867DLGLOBAL DEBUG 1 (_branch1.alive())
1868DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_DESTROY)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001869DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
1870DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001871DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch1))
1872DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
1873DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001874DLGLOBAL DEBUG 2 (_branch1.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001875DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
1876DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001877DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
1878DLGLOBAL DEBUG 3 (2*_branch1.alive(),__twig1b.cleanup())
1879DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
1880DLGLOBAL DEBUG 4 (2*_branch1.alive(),__twig1b.cleanup(),_branch1.child_gone())
1881DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
1882DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
1883DLGLOBAL DEBUG 3 (2*_branch1.alive(),__twig1b.cleanup())
1884DLGLOBAL DEBUG 2 (_branch1.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001885DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001886DLGLOBAL DEBUG 1 (_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001887DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(_branch1)
1888DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch1))
1889DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
1890DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001891DLGLOBAL DEBUG 2 (_branch1.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001892DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
1893DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
1894DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
1895DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001896DLGLOBAL DEBUG 3 (_branch1.alive(),__twig1a.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001897DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001898DLGLOBAL DEBUG 4 (_branch1.alive(),__twig1a.cleanup(),root.alive(),root.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001899DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001900DLGLOBAL DEBUG 3 (_branch1.alive(),__twig1a.cleanup(),root.alive())
1901DLGLOBAL DEBUG test(root){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch1))
1902DLGLOBAL DEBUG test(root){alive}: pre_term()
1903DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
1904DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
1905DLGLOBAL DEBUG 4 (_branch1.alive(),__twig1a.cleanup(),root.alive(),root.cleanup())
1906DLGLOBAL DEBUG test(root){alive}: cleanup()
1907DLGLOBAL DEBUG test(root){alive}: scene forgets root
1908DLGLOBAL DEBUG test(root){alive}: cleanup() done
1909DLGLOBAL DEBUG 3 (_branch1.alive(),__twig1a.cleanup(),root.alive())
1910DLGLOBAL DEBUG test(root){alive}: Deferring: will deallocate with test(_branch1)
1911DLGLOBAL DEBUG 2 (_branch1.alive(),__twig1a.cleanup())
1912DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
1913DLGLOBAL DEBUG 3 (2*_branch1.alive(),__twig1a.cleanup())
1914DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
1915DLGLOBAL DEBUG 4 (2*_branch1.alive(),__twig1a.cleanup(),_branch1.child_gone())
1916DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
1917DLGLOBAL DEBUG test(_branch1){alive}: No more children
1918DLGLOBAL DEBUG 3 (2*_branch1.alive(),__twig1a.cleanup())
1919DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
1920DLGLOBAL DEBUG 2 (_branch1.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001921DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001922DLGLOBAL DEBUG 1 (_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001923DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001924DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
1925DLGLOBAL DEBUG 2 (_branch1.alive(),_branch1.cleanup())
1926DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
1927DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
1928DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001929DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001930DLGLOBAL DEBUG 3 (_branch1.alive(),_branch1.cleanup(),other.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001931DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001932DLGLOBAL DEBUG 4 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001933DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001934DLGLOBAL DEBUG 3 (_branch1.alive(),_branch1.cleanup(),other.alive())
1935DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch1))
1936DLGLOBAL DEBUG test(other){alive}: pre_term()
1937DLGLOBAL DEBUG 4 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
1938DLGLOBAL DEBUG test(other){alive}: cleanup()
1939DLGLOBAL DEBUG test(other){alive}: scene forgets other
1940DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001941DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001942DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001943DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001944DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001945DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001946DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
1947DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(_branch1))
1948DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001949DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch1))
1950DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
1951DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001952DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001953DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
1954DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001955DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
1956DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
1957DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1958DLGLOBAL DEBUG 8 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone(
1959DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
1960DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
1961DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
1962DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001963DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001964DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001965DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(_branch1)
1966DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_PARENT, caused by: test(_branch1))
1967DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
1968DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001969DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001970DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
1971DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
1972DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001973DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
1974DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1975DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
1976DLGLOBAL DEBUG 8 (_branch1.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
1977DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1978DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
1979DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
1980DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
1981DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
1982DLGLOBAL DEBUG 8 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone(
1983DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
1984DLGLOBAL DEBUG test(_branch0){alive}: No more children
1985DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
1986DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
1987DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001988DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001989DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01001990DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01001991DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
1992DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
1993DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
1994DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
1995DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
1996DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
1997DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
1998DLGLOBAL DEBUG 8 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.chil
1999DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
2000DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
2001DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
2002DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
2003DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
2004DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2005DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2006DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
2007DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2008DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
2009DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2010DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(_branch1)
2011DLGLOBAL DEBUG 4 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
2012DLGLOBAL DEBUG test(other){alive}: cleanup() done
2013DLGLOBAL DEBUG 3 (_branch1.alive(),_branch1.cleanup(),other.alive())
2014DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(_branch1)
2015DLGLOBAL DEBUG 2 (_branch1.alive(),_branch1.cleanup())
2016DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2017DLGLOBAL DEBUG 3 (_branch1.alive(),_branch1.cleanup(),root.alive())
2018DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2019DLGLOBAL DEBUG 4 (_branch1.alive(),_branch1.cleanup(),root.alive(),root.child_gone())
2020DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
2021DLGLOBAL DEBUG test(root){alive}: No more children
2022DLGLOBAL DEBUG 3 (_branch1.alive(),_branch1.cleanup(),root.alive())
2023DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
2024DLGLOBAL DEBUG 2 (_branch1.alive(),_branch1.cleanup())
2025DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002026DLGLOBAL DEBUG 1 (_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002027DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2028DLGLOBAL DEBUG 2 (_branch1.alive(),root.alive())
2029DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2030DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
2031DLGLOBAL DEBUG 1 (_branch1.alive())
2032DLGLOBAL DEBUG test(_branch1){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002033DLGLOBAL DEBUG 0 (-)
2034DLGLOBAL DEBUG --- after destroy-event cascade:
2035DLGLOBAL DEBUG --- all deallocated.
2036DLGLOBAL DEBUG scene_alloc()
2037DLGLOBAL DEBUG test(root){alive}: Allocated
2038DLGLOBAL DEBUG test(root){alive}: Allocated
2039DLGLOBAL DEBUG test(root){alive}: is child of test(root)
2040DLGLOBAL DEBUG test(_branch0){alive}: Allocated
2041DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
2042DLGLOBAL DEBUG test(_branch0){alive}: Allocated
2043DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
2044DLGLOBAL DEBUG test(root){alive}: Allocated
2045DLGLOBAL DEBUG test(root){alive}: is child of test(root)
2046DLGLOBAL DEBUG test(_branch1){alive}: Allocated
2047DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
2048DLGLOBAL DEBUG test(_branch1){alive}: Allocated
2049DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
2050DLGLOBAL DEBUG test(other){alive}: Allocated
2051DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
2052DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
2053DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
2054DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
2055DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
2056DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
2057DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
2058DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
2059DLGLOBAL DEBUG ------ before term cascade, got:
2060DLGLOBAL DEBUG root
2061DLGLOBAL DEBUG _branch0
2062DLGLOBAL DEBUG __twig0a
2063DLGLOBAL DEBUG __twig0b
2064DLGLOBAL DEBUG _branch1
2065DLGLOBAL DEBUG __twig1a
2066DLGLOBAL DEBUG __twig1b
2067DLGLOBAL DEBUG other
2068DLGLOBAL DEBUG ---
2069DLGLOBAL DEBUG --- term at __twig1a
2070DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
2071DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
2072DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
2073DLGLOBAL DEBUG 1 (__twig1a.cleanup())
2074DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
2075DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
2076DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
2077DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
2078DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
2079DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
2080DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
2081DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
2082DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002083DLGLOBAL DEBUG test(root){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(__twig1a))
2084DLGLOBAL DEBUG test(root){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002085DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(__twig1a))
2086DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
2087DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_PARENT, caused by: test(__twig1a))
2088DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
2089DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002090DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002091DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
2092DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
2093DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002094DLGLOBAL DEBUG 4 (__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002095DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002096DLGLOBAL DEBUG 5 (__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002097DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
2098DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002099DLGLOBAL DEBUG 4 (__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive())
2100DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002101DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002102DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002103DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(__twig1a)
2104DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002105DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),_branch1.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002106DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
2107DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
2108DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
2109DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002110DLGLOBAL DEBUG 4 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002111DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002112DLGLOBAL DEBUG 5 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002113DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002114DLGLOBAL DEBUG 4 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
2115DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(__twig1a))
2116DLGLOBAL DEBUG test(other){alive}: pre_term()
2117DLGLOBAL DEBUG 5 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
2118DLGLOBAL DEBUG test(other){alive}: cleanup()
2119DLGLOBAL DEBUG test(other){alive}: scene forgets other
2120DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002121DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002122DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002123DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002124DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002125DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002126DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2127DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(__twig1a))
2128DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002129DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 6 (cause = OSMO_FSM_TERM_PARENT, caused by: test(__twig1a))
2130DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
2131DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002132DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002133DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
2134DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002135DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
2136DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
2137DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
2138DLGLOBAL DEBUG 9 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_bran
2139DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
2140DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
2141DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
2142DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002143DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002144DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002145DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(__twig1a)
2146DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 6 (cause = OSMO_FSM_TERM_PARENT, caused by: test(__twig1a))
2147DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
2148DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002149DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002150DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
2151DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
2152DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002153DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
2154DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
2155DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
2156DLGLOBAL DEBUG 9 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other
2157DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
2158DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
2159DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
2160DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
2161DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
2162DLGLOBAL DEBUG 9 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_bran
2163DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
2164DLGLOBAL DEBUG test(_branch0){alive}: No more children
2165DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
2166DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
2167DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002168DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002169DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002170DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(__twig1a)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002171DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
2172DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
2173DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
2174DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
2175DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2176DLGLOBAL DEBUG 8 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
2177DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2178DLGLOBAL DEBUG 9 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.
2179DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
2180DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
2181DLGLOBAL DEBUG 8 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
2182DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
2183DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
2184DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2185DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2186DLGLOBAL DEBUG 7 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2187DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2188DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
2189DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2190DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(__twig1a)
2191DLGLOBAL DEBUG 5 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
2192DLGLOBAL DEBUG test(other){alive}: cleanup() done
2193DLGLOBAL DEBUG 4 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
2194DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(__twig1a)
2195DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),_branch1.cleanup())
2196DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2197DLGLOBAL DEBUG 4 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup())
2198DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2199DLGLOBAL DEBUG 5 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),root.child_gone())
2200DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
2201DLGLOBAL DEBUG test(root){alive}: No more children
2202DLGLOBAL DEBUG 4 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup())
2203DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
2204DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),_branch1.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002205DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002206DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002207DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(__twig1a)
2208DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.cleanup())
2209DLGLOBAL DEBUG test(root){alive}: cleanup()
2210DLGLOBAL DEBUG test(root){alive}: scene forgets root
2211DLGLOBAL DEBUG test(root){alive}: cleanup() done
2212DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
2213DLGLOBAL DEBUG test(root){alive}: Deferring: will deallocate with test(__twig1a)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002214DLGLOBAL DEBUG 1 (__twig1a.cleanup())
2215DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
2216DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
2217DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
2218DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
2219DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
2220DLGLOBAL DEBUG test(_branch1){alive}: No more children
2221DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002222DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002223DLGLOBAL DEBUG 1 (__twig1a.cleanup())
2224DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
2225DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002226DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
2227DLGLOBAL DEBUG 1 (_branch1.alive())
2228DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
2229DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002230DLGLOBAL DEBUG 0 (-)
2231DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated, including all deferred deallocations
2232DLGLOBAL DEBUG --- after term cascade:
2233DLGLOBAL DEBUG --- all deallocated.
2234DLGLOBAL DEBUG scene_alloc()
2235DLGLOBAL DEBUG test(root){alive}: Allocated
2236DLGLOBAL DEBUG test(root){alive}: Allocated
2237DLGLOBAL DEBUG test(root){alive}: is child of test(root)
2238DLGLOBAL DEBUG test(_branch0){alive}: Allocated
2239DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
2240DLGLOBAL DEBUG test(_branch0){alive}: Allocated
2241DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
2242DLGLOBAL DEBUG test(root){alive}: Allocated
2243DLGLOBAL DEBUG test(root){alive}: is child of test(root)
2244DLGLOBAL DEBUG test(_branch1){alive}: Allocated
2245DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
2246DLGLOBAL DEBUG test(_branch1){alive}: Allocated
2247DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
2248DLGLOBAL DEBUG test(other){alive}: Allocated
2249DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
2250DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
2251DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
2252DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
2253DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
2254DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
2255DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
2256DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
2257DLGLOBAL DEBUG ------ before destroy-event cascade, got:
2258DLGLOBAL DEBUG root
2259DLGLOBAL DEBUG _branch0
2260DLGLOBAL DEBUG __twig0a
2261DLGLOBAL DEBUG __twig0b
2262DLGLOBAL DEBUG _branch1
2263DLGLOBAL DEBUG __twig1a
2264DLGLOBAL DEBUG __twig1b
2265DLGLOBAL DEBUG other
2266DLGLOBAL DEBUG ---
2267DLGLOBAL DEBUG --- destroy-event at __twig1a
2268DLGLOBAL DEBUG test(__twig1a){alive}: Received Event EV_DESTROY
2269DLGLOBAL DEBUG 1 (__twig1a.alive())
2270DLGLOBAL DEBUG test(__twig1a){alive}: alive(EV_DESTROY)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002271DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
2272DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
2273DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
2274DLGLOBAL DEBUG 2 (__twig1a.alive(),__twig1a.cleanup())
2275DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
2276DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
2277DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002278DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002279DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002280DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002281DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),root.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002282DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002283DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),root.alive())
2284DLGLOBAL DEBUG test(root){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(__twig1a))
2285DLGLOBAL DEBUG test(root){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002286DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(__twig1a))
2287DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
2288DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_PARENT, caused by: test(__twig1a))
2289DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
2290DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002291DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002292DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
2293DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
2294DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002295DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002296DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002297DLGLOBAL DEBUG 6 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002298DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
2299DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002300DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive())
2301DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002302DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002303DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002304DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(__twig1a)
2305DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002306DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002307DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
2308DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
2309DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
2310DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002311DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002312DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002313DLGLOBAL DEBUG 6 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002314DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002315DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
2316DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(__twig1a))
2317DLGLOBAL DEBUG test(other){alive}: pre_term()
2318DLGLOBAL DEBUG 6 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
2319DLGLOBAL DEBUG test(other){alive}: cleanup()
2320DLGLOBAL DEBUG test(other){alive}: scene forgets other
2321DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002322DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002323DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002324DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002325DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002326DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002327DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2328DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(__twig1a))
2329DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002330DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 6 (cause = OSMO_FSM_TERM_PARENT, caused by: test(__twig1a))
2331DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
2332DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002333DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002334DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
2335DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002336DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
2337DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0
2338DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
2339DLGLOBAL DEBUG 10 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig
2340DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
2341DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
2342DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0
2343DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002344DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002345DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002346DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(__twig1a)
2347DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 6 (cause = OSMO_FSM_TERM_PARENT, caused by: test(__twig1a))
2348DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
2349DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002350DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002351DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
2352DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
2353DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002354DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
2355DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0
2356DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
2357DLGLOBAL DEBUG 10 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig
2358DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0
2359DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.
2360DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
2361DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0
2362DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
2363DLGLOBAL DEBUG 10 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig
2364DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
2365DLGLOBAL DEBUG test(_branch0){alive}: No more children
2366DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0
2367DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
2368DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002369DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002370DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002371DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(__twig1a)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002372DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
2373DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.
2374DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
2375DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
2376DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2377DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch
2378DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2379DLGLOBAL DEBUG 10 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branc
2380DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
2381DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
2382DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch
2383DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.
2384DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
2385DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2386DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2387DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2388DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2389DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
2390DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2391DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(__twig1a)
2392DLGLOBAL DEBUG 6 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
2393DLGLOBAL DEBUG test(other){alive}: cleanup() done
2394DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
2395DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(__twig1a)
2396DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup())
2397DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2398DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup())
2399DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2400DLGLOBAL DEBUG 6 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),root.child_gone())
2401DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
2402DLGLOBAL DEBUG test(root){alive}: No more children
2403DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup())
2404DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
2405DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002406DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002407DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002408DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(__twig1a)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002409DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),root.cleanup())
2410DLGLOBAL DEBUG test(root){alive}: cleanup()
2411DLGLOBAL DEBUG test(root){alive}: scene forgets root
2412DLGLOBAL DEBUG test(root){alive}: cleanup() done
2413DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),root.alive())
2414DLGLOBAL DEBUG test(root){alive}: Deferring: will deallocate with test(__twig1a)
2415DLGLOBAL DEBUG 2 (__twig1a.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002416DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002417DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002418DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002419DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002420DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
2421DLGLOBAL DEBUG test(_branch1){alive}: No more children
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002422DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),_branch1.alive())
2423DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
2424DLGLOBAL DEBUG 2 (__twig1a.alive(),__twig1a.cleanup())
2425DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002426DLGLOBAL DEBUG 1 (__twig1a.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002427DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
2428DLGLOBAL DEBUG 2 (__twig1a.alive(),_branch1.alive())
2429DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
2430DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
2431DLGLOBAL DEBUG 1 (__twig1a.alive())
2432DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002433DLGLOBAL DEBUG 0 (-)
2434DLGLOBAL DEBUG --- after destroy-event cascade:
2435DLGLOBAL DEBUG --- all deallocated.
2436DLGLOBAL DEBUG scene_alloc()
2437DLGLOBAL DEBUG test(root){alive}: Allocated
2438DLGLOBAL DEBUG test(root){alive}: Allocated
2439DLGLOBAL DEBUG test(root){alive}: is child of test(root)
2440DLGLOBAL DEBUG test(_branch0){alive}: Allocated
2441DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
2442DLGLOBAL DEBUG test(_branch0){alive}: Allocated
2443DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
2444DLGLOBAL DEBUG test(root){alive}: Allocated
2445DLGLOBAL DEBUG test(root){alive}: is child of test(root)
2446DLGLOBAL DEBUG test(_branch1){alive}: Allocated
2447DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
2448DLGLOBAL DEBUG test(_branch1){alive}: Allocated
2449DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
2450DLGLOBAL DEBUG test(other){alive}: Allocated
2451DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
2452DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
2453DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
2454DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
2455DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
2456DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
2457DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
2458DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
2459DLGLOBAL DEBUG ------ before term cascade, got:
2460DLGLOBAL DEBUG root
2461DLGLOBAL DEBUG _branch0
2462DLGLOBAL DEBUG __twig0a
2463DLGLOBAL DEBUG __twig0b
2464DLGLOBAL DEBUG _branch1
2465DLGLOBAL DEBUG __twig1a
2466DLGLOBAL DEBUG __twig1b
2467DLGLOBAL DEBUG other
2468DLGLOBAL DEBUG ---
2469DLGLOBAL DEBUG --- term at __twig1b
2470DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
2471DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
2472DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
2473DLGLOBAL DEBUG 1 (__twig1b.cleanup())
2474DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
2475DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
2476DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
2477DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
2478DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
2479DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
2480DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
2481DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
2482DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
2483DLGLOBAL DEBUG 1 (__twig1b.cleanup())
2484DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
2485DLGLOBAL DEBUG 0 (-)
2486DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
2487DLGLOBAL DEBUG 1 (_branch1.alive())
2488DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
2489DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
2490DLGLOBAL DEBUG 0 (-)
2491DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
2492DLGLOBAL DEBUG --- after term cascade:
2493DLGLOBAL DEBUG root
2494DLGLOBAL DEBUG _branch0
2495DLGLOBAL DEBUG __twig0a
2496DLGLOBAL DEBUG __twig0b
2497DLGLOBAL DEBUG _branch1
2498DLGLOBAL DEBUG __twig1a
2499DLGLOBAL DEBUG other
2500DLGLOBAL DEBUG --- 7 objects remain. cleaning up
2501DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
2502DLGLOBAL DEBUG test(root){alive}: pre_term()
2503DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
2504DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
2505DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
2506DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
2507DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
2508DLGLOBAL DEBUG 1 (__twig1a.cleanup())
2509DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
2510DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
2511DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
2512DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
2513DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
2514DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
2515DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
2516DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
2517DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002518DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002519DLGLOBAL DEBUG 1 (__twig1a.cleanup())
2520DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
2521DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
2522DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
2523DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
2524DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
2525DLGLOBAL DEBUG test(_branch1){alive}: No more children
2526DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002527DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002528DLGLOBAL DEBUG 1 (__twig1a.cleanup())
2529DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
2530DLGLOBAL DEBUG 0 (-)
2531DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002532DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002533DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002534DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
2535DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
2536DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002537DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
2538DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
2539DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
2540DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
2541DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
2542DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002543DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
2544DLGLOBAL DEBUG test(other){alive}: pre_term()
2545DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
2546DLGLOBAL DEBUG test(other){alive}: cleanup()
2547DLGLOBAL DEBUG test(other){alive}: scene forgets other
2548DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002549DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002550DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002551DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002552DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002553DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002554DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2555DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
2556DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002557DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
2558DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
2559DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002560DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002561DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
2562DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002563DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
2564DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
2565DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
2566DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
2567DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
2568DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
2569DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
2570DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002571DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002572DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002573DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(root)
2574DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
2575DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
2576DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002577DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002578DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
2579DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
2580DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002581DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
2582DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
2583DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
2584DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
2585DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
2586DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
2587DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
2588DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
2589DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
2590DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
2591DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
2592DLGLOBAL DEBUG test(_branch0){alive}: No more children
2593DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
2594DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
2595DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002596DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002597DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002598DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002599DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
2600DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
2601DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
2602DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
2603DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2604DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
2605DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2606DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
2607DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
2608DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
2609DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
2610DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
2611DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
2612DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2613DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2614DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
2615DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2616DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
2617DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2618DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(root)
2619DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
2620DLGLOBAL DEBUG test(other){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002621DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002622DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002623DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002624DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2625DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
2626DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2627DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
2628DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
2629DLGLOBAL DEBUG test(root){alive}: No more children
2630DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
2631DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002632DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002633DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002634DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002635DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002636DLGLOBAL DEBUG 1 (root.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002637DLGLOBAL DEBUG test(root){alive}: cleanup()
2638DLGLOBAL DEBUG test(root){alive}: scene forgets root
2639DLGLOBAL DEBUG test(root){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002640DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002641DLGLOBAL DEBUG test(root){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002642DLGLOBAL DEBUG scene_alloc()
2643DLGLOBAL DEBUG test(root){alive}: Allocated
2644DLGLOBAL DEBUG test(root){alive}: Allocated
2645DLGLOBAL DEBUG test(root){alive}: is child of test(root)
2646DLGLOBAL DEBUG test(_branch0){alive}: Allocated
2647DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
2648DLGLOBAL DEBUG test(_branch0){alive}: Allocated
2649DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
2650DLGLOBAL DEBUG test(root){alive}: Allocated
2651DLGLOBAL DEBUG test(root){alive}: is child of test(root)
2652DLGLOBAL DEBUG test(_branch1){alive}: Allocated
2653DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
2654DLGLOBAL DEBUG test(_branch1){alive}: Allocated
2655DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
2656DLGLOBAL DEBUG test(other){alive}: Allocated
2657DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
2658DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
2659DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
2660DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
2661DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
2662DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
2663DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
2664DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
2665DLGLOBAL DEBUG ------ before destroy-event cascade, got:
2666DLGLOBAL DEBUG root
2667DLGLOBAL DEBUG _branch0
2668DLGLOBAL DEBUG __twig0a
2669DLGLOBAL DEBUG __twig0b
2670DLGLOBAL DEBUG _branch1
2671DLGLOBAL DEBUG __twig1a
2672DLGLOBAL DEBUG __twig1b
2673DLGLOBAL DEBUG other
2674DLGLOBAL DEBUG ---
2675DLGLOBAL DEBUG --- destroy-event at __twig1b
2676DLGLOBAL DEBUG test(__twig1b){alive}: Received Event EV_DESTROY
2677DLGLOBAL DEBUG 1 (__twig1b.alive())
2678DLGLOBAL DEBUG test(__twig1b){alive}: alive(EV_DESTROY)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002679DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
2680DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
2681DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
2682DLGLOBAL DEBUG 2 (__twig1b.alive(),__twig1b.cleanup())
2683DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
2684DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002685DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002686DLGLOBAL DEBUG 3 (__twig1b.alive(),__twig1b.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002687DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002688DLGLOBAL DEBUG 4 (__twig1b.alive(),__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002689DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
2690DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002691DLGLOBAL DEBUG 3 (__twig1b.alive(),__twig1b.cleanup(),_branch1.alive())
2692DLGLOBAL DEBUG 2 (__twig1b.alive(),__twig1b.cleanup())
2693DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
2694DLGLOBAL DEBUG 1 (__twig1b.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002695DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002696DLGLOBAL DEBUG 2 (__twig1b.alive(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002697DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
2698DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002699DLGLOBAL DEBUG 1 (__twig1b.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002700DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002701DLGLOBAL DEBUG 0 (-)
2702DLGLOBAL DEBUG --- after destroy-event cascade:
2703DLGLOBAL DEBUG root
2704DLGLOBAL DEBUG _branch0
2705DLGLOBAL DEBUG __twig0a
2706DLGLOBAL DEBUG __twig0b
2707DLGLOBAL DEBUG _branch1
2708DLGLOBAL DEBUG __twig1a
2709DLGLOBAL DEBUG other
2710DLGLOBAL DEBUG --- 7 objects remain. cleaning up
2711DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
2712DLGLOBAL DEBUG test(root){alive}: pre_term()
2713DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
2714DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
2715DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
2716DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
2717DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
2718DLGLOBAL DEBUG 1 (__twig1a.cleanup())
2719DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
2720DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
2721DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
2722DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
2723DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
2724DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
2725DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
2726DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
2727DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002728DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002729DLGLOBAL DEBUG 1 (__twig1a.cleanup())
2730DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
2731DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
2732DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
2733DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
2734DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
2735DLGLOBAL DEBUG test(_branch1){alive}: No more children
2736DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002737DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002738DLGLOBAL DEBUG 1 (__twig1a.cleanup())
2739DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
2740DLGLOBAL DEBUG 0 (-)
2741DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002742DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002743DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002744DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
2745DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
2746DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002747DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
2748DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
2749DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
2750DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
2751DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
2752DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002753DLGLOBAL DEBUG test(other){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
2754DLGLOBAL DEBUG test(other){alive}: pre_term()
2755DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
2756DLGLOBAL DEBUG test(other){alive}: cleanup()
2757DLGLOBAL DEBUG test(other){alive}: scene forgets other
2758DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002759DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002760DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002761DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002762DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002763DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002764DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2765DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(root))
2766DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002767DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
2768DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
2769DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002770DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002771DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
2772DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002773DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
2774DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
2775DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
2776DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
2777DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
2778DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
2779DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
2780DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002781DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002782DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002783DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(root)
2784DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 5 (cause = OSMO_FSM_TERM_PARENT, caused by: test(root))
2785DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
2786DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002787DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002788DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
2789DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
2790DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002791DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
2792DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
2793DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
2794DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
2795DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
2796DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
2797DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
2798DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
2799DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
2800DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
2801DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
2802DLGLOBAL DEBUG test(_branch0){alive}: No more children
2803DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
2804DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
2805DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002806DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002807DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002808DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002809DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
2810DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
2811DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
2812DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
2813DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2814DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
2815DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2816DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
2817DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
2818DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
2819DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
2820DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
2821DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
2822DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2823DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2824DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
2825DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2826DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
2827DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
2828DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(root)
2829DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
2830DLGLOBAL DEBUG test(other){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002831DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002832DLGLOBAL DEBUG test(other){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002833DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002834DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
2835DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
2836DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2837DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
2838DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
2839DLGLOBAL DEBUG test(root){alive}: No more children
2840DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
2841DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002842DLGLOBAL DEBUG 1 (_branch1.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002843DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002844DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002845DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(root)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002846DLGLOBAL DEBUG 1 (root.cleanup())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002847DLGLOBAL DEBUG test(root){alive}: cleanup()
2848DLGLOBAL DEBUG test(root){alive}: scene forgets root
2849DLGLOBAL DEBUG test(root){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002850DLGLOBAL DEBUG 0 (-)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002851DLGLOBAL DEBUG test(root){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002852DLGLOBAL DEBUG scene_alloc()
2853DLGLOBAL DEBUG test(root){alive}: Allocated
2854DLGLOBAL DEBUG test(root){alive}: Allocated
2855DLGLOBAL DEBUG test(root){alive}: is child of test(root)
2856DLGLOBAL DEBUG test(_branch0){alive}: Allocated
2857DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
2858DLGLOBAL DEBUG test(_branch0){alive}: Allocated
2859DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
2860DLGLOBAL DEBUG test(root){alive}: Allocated
2861DLGLOBAL DEBUG test(root){alive}: is child of test(root)
2862DLGLOBAL DEBUG test(_branch1){alive}: Allocated
2863DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
2864DLGLOBAL DEBUG test(_branch1){alive}: Allocated
2865DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
2866DLGLOBAL DEBUG test(other){alive}: Allocated
2867DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
2868DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
2869DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
2870DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
2871DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
2872DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
2873DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
2874DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
2875DLGLOBAL DEBUG ------ before term cascade, got:
2876DLGLOBAL DEBUG root
2877DLGLOBAL DEBUG _branch0
2878DLGLOBAL DEBUG __twig0a
2879DLGLOBAL DEBUG __twig0b
2880DLGLOBAL DEBUG _branch1
2881DLGLOBAL DEBUG __twig1a
2882DLGLOBAL DEBUG __twig1b
2883DLGLOBAL DEBUG other
2884DLGLOBAL DEBUG ---
2885DLGLOBAL DEBUG --- term at other
2886DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
2887DLGLOBAL DEBUG test(other){alive}: pre_term()
2888DLGLOBAL DEBUG 1 (other.cleanup())
2889DLGLOBAL DEBUG test(other){alive}: cleanup()
2890DLGLOBAL DEBUG test(other){alive}: scene forgets other
2891DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
2892DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
2893DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
2894DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
2895DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),_branch0.other_gone())
2896DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
2897DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002898DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(other))
2899DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002900DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(other))
2901DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
2902DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002903DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002904DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
2905DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002906DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
2907DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
2908DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
2909DLGLOBAL DEBUG 5 (other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
2910DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
2911DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
2912DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
2913DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002914DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002915DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002916DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(other)
2917DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(other))
2918DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
2919DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002920DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002921DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
2922DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
2923DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
2924DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002925DLGLOBAL DEBUG 4 (other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002926DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002927DLGLOBAL DEBUG 5 (other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.alive(),other.other_gone())
2928DLGLOBAL DEBUG 4 (other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.alive())
2929DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),__twig0a.cleanup())
2930DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
2931DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
2932DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
2933DLGLOBAL DEBUG 5 (other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
2934DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
2935DLGLOBAL DEBUG test(_branch0){alive}: No more children
2936DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
2937DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
2938DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002939DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002940DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002941DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(other)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002942DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
2943DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),_branch0.cleanup())
2944DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
2945DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002946DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002947DLGLOBAL DEBUG 4 (other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002948DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002949DLGLOBAL DEBUG 5 (other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002950DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
2951DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002952DLGLOBAL DEBUG 4 (other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
2953DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),_branch0.cleanup())
2954DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
2955DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002956DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002957DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002958DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
2959DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002960DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002961DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(other)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002962DLGLOBAL DEBUG 1 (other.cleanup())
2963DLGLOBAL DEBUG test(other){alive}: removing reference other.other[1] -> _branch1
2964DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_OTHER_GONE
2965DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
2966DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_OTHER_GONE)
2967DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),_branch1.other_gone())
2968DLGLOBAL DEBUG test(_branch1){alive}: EV_OTHER_GONE: Dropped reference _branch1.other[0] = other
2969DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002970DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(other))
2971DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002972DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(other))
2973DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
2974DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002975DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002976DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
2977DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002978DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
2979DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
2980DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
2981DLGLOBAL DEBUG 5 (other.cleanup(),2*_branch1.alive(),__twig1b.cleanup(),_branch1.child_gone())
2982DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
2983DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
2984DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
2985DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002986DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002987DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002988DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(other)
2989DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(other))
2990DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
2991DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002992DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002993DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
2994DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
2995DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
2996DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002997DLGLOBAL DEBUG 4 (other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01002998DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01002999DLGLOBAL DEBUG 5 (other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003000DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003001DLGLOBAL DEBUG 4 (other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
3002DLGLOBAL DEBUG test(root){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(other))
3003DLGLOBAL DEBUG test(root){alive}: pre_term()
3004DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
3005DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
3006DLGLOBAL DEBUG 5 (other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.cleanup())
3007DLGLOBAL DEBUG test(root){alive}: cleanup()
3008DLGLOBAL DEBUG test(root){alive}: scene forgets root
3009DLGLOBAL DEBUG test(root){alive}: cleanup() done
3010DLGLOBAL DEBUG 4 (other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
3011DLGLOBAL DEBUG test(root){alive}: Deferring: will deallocate with test(other)
3012DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),__twig1a.cleanup())
3013DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
3014DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
3015DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
3016DLGLOBAL DEBUG 5 (other.cleanup(),2*_branch1.alive(),__twig1a.cleanup(),_branch1.child_gone())
3017DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
3018DLGLOBAL DEBUG test(_branch1){alive}: No more children
3019DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
3020DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
3021DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003022DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003023DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003024DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(other)
3025DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
3026DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),_branch1.cleanup())
3027DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
3028DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
3029DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3030DLGLOBAL DEBUG 4 (other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
3031DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3032DLGLOBAL DEBUG 5 (other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive(),root.child_gone())
3033DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
3034DLGLOBAL DEBUG test(root){alive}: No more children
3035DLGLOBAL DEBUG 4 (other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
3036DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
3037DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),_branch1.cleanup())
3038DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
3039DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
3040DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3041DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),root.alive())
3042DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3043DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
3044DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
3045DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(other)
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003046DLGLOBAL DEBUG 1 (other.cleanup())
3047DLGLOBAL DEBUG test(other){alive}: cleanup() done
3048DLGLOBAL DEBUG 0 (-)
3049DLGLOBAL DEBUG test(other){alive}: Deallocated, including all deferred deallocations
3050DLGLOBAL DEBUG --- after term cascade:
3051DLGLOBAL DEBUG --- all deallocated.
3052DLGLOBAL DEBUG scene_alloc()
3053DLGLOBAL DEBUG test(root){alive}: Allocated
3054DLGLOBAL DEBUG test(root){alive}: Allocated
3055DLGLOBAL DEBUG test(root){alive}: is child of test(root)
3056DLGLOBAL DEBUG test(_branch0){alive}: Allocated
3057DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
3058DLGLOBAL DEBUG test(_branch0){alive}: Allocated
3059DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
3060DLGLOBAL DEBUG test(root){alive}: Allocated
3061DLGLOBAL DEBUG test(root){alive}: is child of test(root)
3062DLGLOBAL DEBUG test(_branch1){alive}: Allocated
3063DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
3064DLGLOBAL DEBUG test(_branch1){alive}: Allocated
3065DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
3066DLGLOBAL DEBUG test(other){alive}: Allocated
3067DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
3068DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
3069DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
3070DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
3071DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
3072DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
3073DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
3074DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
3075DLGLOBAL DEBUG ------ before destroy-event cascade, got:
3076DLGLOBAL DEBUG root
3077DLGLOBAL DEBUG _branch0
3078DLGLOBAL DEBUG __twig0a
3079DLGLOBAL DEBUG __twig0b
3080DLGLOBAL DEBUG _branch1
3081DLGLOBAL DEBUG __twig1a
3082DLGLOBAL DEBUG __twig1b
3083DLGLOBAL DEBUG other
3084DLGLOBAL DEBUG ---
3085DLGLOBAL DEBUG --- destroy-event at other
3086DLGLOBAL DEBUG test(other){alive}: Received Event EV_DESTROY
3087DLGLOBAL DEBUG 1 (other.alive())
3088DLGLOBAL DEBUG test(other){alive}: alive(EV_DESTROY)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003089DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3090DLGLOBAL DEBUG test(other){alive}: pre_term()
3091DLGLOBAL DEBUG 2 (other.alive(),other.cleanup())
3092DLGLOBAL DEBUG test(other){alive}: cleanup()
3093DLGLOBAL DEBUG test(other){alive}: scene forgets other
3094DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003095DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003096DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003097DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003098DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003099DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003100DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
3101DLGLOBAL DEBUG test(_branch0){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(other))
3102DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003103DLGLOBAL DEBUG test(__twig0b){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(other))
3104DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
3105DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003106DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003107DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
3108DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003109DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
3110DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
3111DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
3112DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
3113DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
3114DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
3115DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
3116DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003117DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003118DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003119DLGLOBAL DEBUG test(__twig0b){alive}: Deferring: will deallocate with test(other)
3120DLGLOBAL DEBUG test(__twig0a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(other))
3121DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
3122DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003123DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003124DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
3125DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
3126DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003127DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
3128DLGLOBAL DEBUG 5 (2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3129DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
3130DLGLOBAL DEBUG 6 (2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
3131DLGLOBAL DEBUG 5 (2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3132DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3133DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
3134DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
3135DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
3136DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
3137DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
3138DLGLOBAL DEBUG test(_branch0){alive}: No more children
3139DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
3140DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
3141DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003142DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003143DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003144DLGLOBAL DEBUG test(__twig0a){alive}: Deferring: will deallocate with test(other)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003145DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
3146DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
3147DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
3148DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003149DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003150DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003151DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003152DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003153DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
3154DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003155DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
3156DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
3157DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
3158DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003159DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003160DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003161DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3162DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003163DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
3164DLGLOBAL DEBUG test(_branch0){alive}: Deferring: will deallocate with test(other)
3165DLGLOBAL DEBUG 2 (other.alive(),other.cleanup())
3166DLGLOBAL DEBUG test(other){alive}: removing reference other.other[1] -> _branch1
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003167DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003168DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003169DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003170DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003171DLGLOBAL DEBUG test(_branch1){alive}: EV_OTHER_GONE: Dropped reference _branch1.other[0] = other
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003172DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
3173DLGLOBAL DEBUG test(_branch1){alive}: Terminating in cascade, depth 2 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(other))
3174DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003175DLGLOBAL DEBUG test(__twig1b){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(other))
3176DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
3177DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003178DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003179DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
3180DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003181DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
3182DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
3183DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
3184DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup(),_branch1.child_gone())
3185DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
3186DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
3187DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
3188DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003189DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003190DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003191DLGLOBAL DEBUG test(__twig1b){alive}: Deferring: will deallocate with test(other)
3192DLGLOBAL DEBUG test(__twig1a){alive}: Terminating in cascade, depth 3 (cause = OSMO_FSM_TERM_PARENT, caused by: test(other))
3193DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
3194DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003195DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003196DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
3197DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
3198DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
3199DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003200DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003201DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003202DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.other_gone())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003203DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003204DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
3205DLGLOBAL DEBUG test(root){alive}: Terminating in cascade, depth 4 (cause = OSMO_FSM_TERM_REGULAR, caused by: test(other))
3206DLGLOBAL DEBUG test(root){alive}: pre_term()
3207DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
3208DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
3209DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.cleanup())
3210DLGLOBAL DEBUG test(root){alive}: cleanup()
3211DLGLOBAL DEBUG test(root){alive}: scene forgets root
3212DLGLOBAL DEBUG test(root){alive}: cleanup() done
3213DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
3214DLGLOBAL DEBUG test(root){alive}: Deferring: will deallocate with test(other)
3215DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
3216DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
3217DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
3218DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
3219DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup(),_branch1.child_gone())
3220DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
3221DLGLOBAL DEBUG test(_branch1){alive}: No more children
3222DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
3223DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
3224DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003225DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003226DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003227DLGLOBAL DEBUG test(__twig1a){alive}: Deferring: will deallocate with test(other)
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003228DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
3229DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
3230DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
3231DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
3232DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3233DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
3234DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3235DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive(),root.child_gone())
3236DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
3237DLGLOBAL DEBUG test(root){alive}: No more children
3238DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
3239DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
3240DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
3241DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
3242DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
3243DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3244DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),root.alive())
3245DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3246DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
3247DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
3248DLGLOBAL DEBUG test(_branch1){alive}: Deferring: will deallocate with test(other)
3249DLGLOBAL DEBUG 2 (other.alive(),other.cleanup())
3250DLGLOBAL DEBUG test(other){alive}: cleanup() done
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003251DLGLOBAL DEBUG 1 (other.alive())
Neels Hofmeyrd28aa0c2019-03-24 05:43:04 +01003252DLGLOBAL DEBUG test(other){alive}: Deallocated, including all deferred deallocations
Neels Hofmeyr1f9cc012019-03-24 05:56:21 +01003253DLGLOBAL DEBUG 0 (-)
3254DLGLOBAL DEBUG --- after destroy-event cascade:
3255DLGLOBAL DEBUG --- all deallocated.
Neels Hofmeyr988f6d72019-10-04 20:37:17 +02003256
3257
3258test_osmo_fsm_term_safely() done
3259
3260
3261test_osmo_fsm_set_dealloc_ctx()
3262DLGLOBAL DEBUG scene_alloc()
3263DLGLOBAL DEBUG test(root){alive}: Allocated
3264DLGLOBAL DEBUG test(root){alive}: Allocated
3265DLGLOBAL DEBUG test(root){alive}: is child of test(root)
3266DLGLOBAL DEBUG test(_branch0){alive}: Allocated
3267DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
3268DLGLOBAL DEBUG test(_branch0){alive}: Allocated
3269DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
3270DLGLOBAL DEBUG test(root){alive}: Allocated
3271DLGLOBAL DEBUG test(root){alive}: is child of test(root)
3272DLGLOBAL DEBUG test(_branch1){alive}: Allocated
3273DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
3274DLGLOBAL DEBUG test(_branch1){alive}: Allocated
3275DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
3276DLGLOBAL DEBUG test(other){alive}: Allocated
3277DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
3278DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
3279DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
3280DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
3281DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
3282DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
3283DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
3284DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
3285DLGLOBAL DEBUG ------ before term cascade, got:
3286DLGLOBAL DEBUG root
3287DLGLOBAL DEBUG _branch0
3288DLGLOBAL DEBUG __twig0a
3289DLGLOBAL DEBUG __twig0b
3290DLGLOBAL DEBUG _branch1
3291DLGLOBAL DEBUG __twig1a
3292DLGLOBAL DEBUG __twig1b
3293DLGLOBAL DEBUG other
3294DLGLOBAL DEBUG ---
3295DLGLOBAL DEBUG --- term at root
3296DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3297DLGLOBAL DEBUG test(root){alive}: pre_term()
3298DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3299DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
3300DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3301DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
3302DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
3303DLGLOBAL DEBUG 1 (__twig1b.cleanup())
3304DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
3305DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
3306DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
3307DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
3308DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
3309DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
3310DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
3311DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
3312DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
3313DLGLOBAL DEBUG 1 (__twig1b.cleanup())
3314DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
3315DLGLOBAL DEBUG 0 (-)
3316DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
3317DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
3318DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3319DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
3320DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
3321DLGLOBAL DEBUG 1 (__twig1a.cleanup())
3322DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
3323DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
3324DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
3325DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
3326DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
3327DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
3328DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
3329DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
3330DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
3331DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
3332DLGLOBAL DEBUG 1 (__twig1a.cleanup())
3333DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
3334DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
3335DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
3336DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
3337DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
3338DLGLOBAL DEBUG test(_branch1){alive}: No more children
3339DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
3340DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
3341DLGLOBAL DEBUG 1 (__twig1a.cleanup())
3342DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
3343DLGLOBAL DEBUG 0 (-)
3344DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
3345DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
3346DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
3347DLGLOBAL DEBUG 1 (_branch1.cleanup())
3348DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
3349DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
3350DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
3351DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
3352DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
3353DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
3354DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
3355DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
3356DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
3357DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3358DLGLOBAL DEBUG test(other){alive}: pre_term()
3359DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
3360DLGLOBAL DEBUG test(other){alive}: cleanup()
3361DLGLOBAL DEBUG test(other){alive}: scene forgets other
3362DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
3363DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
3364DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3365DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
3366DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
3367DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
3368DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3369DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3370DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
3371DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3372DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
3373DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
3374DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
3375DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
3376DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
3377DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
3378DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
3379DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
3380DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
3381DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
3382DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
3383DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
3384DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
3385DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
3386DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3387DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
3388DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
3389DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3390DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
3391DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
3392DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3393DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
3394DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
3395DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
3396DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
3397DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3398DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
3399DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
3400DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3401DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3402DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
3403DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
3404DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
3405DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
3406DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
3407DLGLOBAL DEBUG test(_branch0){alive}: No more children
3408DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
3409DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
3410DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3411DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
3412DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3413DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
3414DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
3415DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
3416DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
3417DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
3418DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
3419DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3420DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
3421DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3422DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
3423DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
3424DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
3425DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
3426DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
3427DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
3428DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3429DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
3430DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
3431DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3432DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
3433DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3434DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
3435DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3436DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
3437DLGLOBAL DEBUG test(other){alive}: cleanup() done
3438DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
3439DLGLOBAL DEBUG test(other){alive}: Freeing instance
3440DLGLOBAL DEBUG test(other){alive}: Deallocated
3441DLGLOBAL DEBUG 1 (_branch1.cleanup())
3442DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3443DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
3444DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3445DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
3446DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
3447DLGLOBAL DEBUG test(root){alive}: No more children
3448DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
3449DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
3450DLGLOBAL DEBUG 1 (_branch1.cleanup())
3451DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
3452DLGLOBAL DEBUG 0 (-)
3453DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
3454DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
3455DLGLOBAL DEBUG 1 (root.cleanup())
3456DLGLOBAL DEBUG test(root){alive}: cleanup()
3457DLGLOBAL DEBUG test(root){alive}: scene forgets root
3458DLGLOBAL DEBUG test(root){alive}: cleanup() done
3459DLGLOBAL DEBUG 0 (-)
3460DLGLOBAL DEBUG test(root){alive}: Freeing instance
3461DLGLOBAL DEBUG test(root){alive}: Deallocated
3462DLGLOBAL DEBUG --- after term cascade:
3463DLGLOBAL DEBUG --- all deallocated.
3464*** loop_ctx contains 33 blocks, deallocating.
3465DLGLOBAL DEBUG scene_alloc()
3466DLGLOBAL DEBUG test(root){alive}: Allocated
3467DLGLOBAL DEBUG test(root){alive}: Allocated
3468DLGLOBAL DEBUG test(root){alive}: is child of test(root)
3469DLGLOBAL DEBUG test(_branch0){alive}: Allocated
3470DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
3471DLGLOBAL DEBUG test(_branch0){alive}: Allocated
3472DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
3473DLGLOBAL DEBUG test(root){alive}: Allocated
3474DLGLOBAL DEBUG test(root){alive}: is child of test(root)
3475DLGLOBAL DEBUG test(_branch1){alive}: Allocated
3476DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
3477DLGLOBAL DEBUG test(_branch1){alive}: Allocated
3478DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
3479DLGLOBAL DEBUG test(other){alive}: Allocated
3480DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
3481DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
3482DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
3483DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
3484DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
3485DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
3486DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
3487DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
3488DLGLOBAL DEBUG ------ before destroy-event cascade, got:
3489DLGLOBAL DEBUG root
3490DLGLOBAL DEBUG _branch0
3491DLGLOBAL DEBUG __twig0a
3492DLGLOBAL DEBUG __twig0b
3493DLGLOBAL DEBUG _branch1
3494DLGLOBAL DEBUG __twig1a
3495DLGLOBAL DEBUG __twig1b
3496DLGLOBAL DEBUG other
3497DLGLOBAL DEBUG ---
3498DLGLOBAL DEBUG --- destroy-event at root
3499DLGLOBAL DEBUG test(root){alive}: Received Event EV_DESTROY
3500DLGLOBAL DEBUG 1 (root.alive())
3501DLGLOBAL DEBUG test(root){alive}: alive(EV_DESTROY)
3502DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3503DLGLOBAL DEBUG test(root){alive}: pre_term()
3504DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3505DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
3506DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3507DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
3508DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
3509DLGLOBAL DEBUG 2 (root.alive(),__twig1b.cleanup())
3510DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
3511DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
3512DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
3513DLGLOBAL DEBUG 3 (root.alive(),__twig1b.cleanup(),_branch1.alive())
3514DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
3515DLGLOBAL DEBUG 4 (root.alive(),__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
3516DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
3517DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
3518DLGLOBAL DEBUG 3 (root.alive(),__twig1b.cleanup(),_branch1.alive())
3519DLGLOBAL DEBUG 2 (root.alive(),__twig1b.cleanup())
3520DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
3521DLGLOBAL DEBUG 1 (root.alive())
3522DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
3523DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
3524DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3525DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
3526DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
3527DLGLOBAL DEBUG 2 (root.alive(),__twig1a.cleanup())
3528DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
3529DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
3530DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
3531DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
3532DLGLOBAL DEBUG 3 (2*root.alive(),__twig1a.cleanup())
3533DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
3534DLGLOBAL DEBUG 4 (2*root.alive(),__twig1a.cleanup(),root.other_gone())
3535DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
3536DLGLOBAL DEBUG 3 (2*root.alive(),__twig1a.cleanup())
3537DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
3538DLGLOBAL DEBUG 2 (root.alive(),__twig1a.cleanup())
3539DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
3540DLGLOBAL DEBUG 3 (root.alive(),__twig1a.cleanup(),_branch1.alive())
3541DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
3542DLGLOBAL DEBUG 4 (root.alive(),__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
3543DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
3544DLGLOBAL DEBUG test(_branch1){alive}: No more children
3545DLGLOBAL DEBUG 3 (root.alive(),__twig1a.cleanup(),_branch1.alive())
3546DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
3547DLGLOBAL DEBUG 2 (root.alive(),__twig1a.cleanup())
3548DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
3549DLGLOBAL DEBUG 1 (root.alive())
3550DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
3551DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
3552DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
3553DLGLOBAL DEBUG 2 (root.alive(),_branch1.cleanup())
3554DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
3555DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
3556DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
3557DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
3558DLGLOBAL DEBUG 3 (root.alive(),_branch1.cleanup(),other.alive())
3559DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
3560DLGLOBAL DEBUG 4 (root.alive(),_branch1.cleanup(),other.alive(),other.other_gone())
3561DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
3562DLGLOBAL DEBUG 3 (root.alive(),_branch1.cleanup(),other.alive())
3563DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3564DLGLOBAL DEBUG test(other){alive}: pre_term()
3565DLGLOBAL DEBUG 4 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
3566DLGLOBAL DEBUG test(other){alive}: cleanup()
3567DLGLOBAL DEBUG test(other){alive}: scene forgets other
3568DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
3569DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
3570DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3571DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
3572DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
3573DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
3574DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3575DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3576DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
3577DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3578DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
3579DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
3580DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
3581DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
3582DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
3583DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
3584DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
3585DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
3586DLGLOBAL DEBUG 8 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
3587DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
3588DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
3589DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
3590DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
3591DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
3592DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3593DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
3594DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
3595DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3596DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
3597DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
3598DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3599DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
3600DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
3601DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
3602DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
3603DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3604DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
3605DLGLOBAL DEBUG 8 (root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
3606DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3607DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3608DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
3609DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
3610DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
3611DLGLOBAL DEBUG 8 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
3612DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
3613DLGLOBAL DEBUG test(_branch0){alive}: No more children
3614DLGLOBAL DEBUG 7 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
3615DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
3616DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
3617DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
3618DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3619DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
3620DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
3621DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
3622DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
3623DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
3624DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
3625DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3626DLGLOBAL DEBUG 7 (2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
3627DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3628DLGLOBAL DEBUG 8 (2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.child_gone())
3629DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
3630DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
3631DLGLOBAL DEBUG 7 (2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
3632DLGLOBAL DEBUG 6 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
3633DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
3634DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3635DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
3636DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
3637DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3638DLGLOBAL DEBUG 6 (2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3639DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3640DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
3641DLGLOBAL DEBUG 5 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
3642DLGLOBAL DEBUG 4 (root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
3643DLGLOBAL DEBUG test(other){alive}: cleanup() done
3644DLGLOBAL DEBUG 3 (root.alive(),_branch1.cleanup(),other.alive())
3645DLGLOBAL DEBUG test(other){alive}: Freeing instance
3646DLGLOBAL DEBUG test(other){alive}: Deallocated
3647DLGLOBAL DEBUG 2 (root.alive(),_branch1.cleanup())
3648DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3649DLGLOBAL DEBUG 3 (2*root.alive(),_branch1.cleanup())
3650DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3651DLGLOBAL DEBUG 4 (2*root.alive(),_branch1.cleanup(),root.child_gone())
3652DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
3653DLGLOBAL DEBUG test(root){alive}: No more children
3654DLGLOBAL DEBUG 3 (2*root.alive(),_branch1.cleanup())
3655DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
3656DLGLOBAL DEBUG 2 (root.alive(),_branch1.cleanup())
3657DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
3658DLGLOBAL DEBUG 1 (root.alive())
3659DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
3660DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
3661DLGLOBAL DEBUG 2 (root.alive(),root.cleanup())
3662DLGLOBAL DEBUG test(root){alive}: cleanup()
3663DLGLOBAL DEBUG test(root){alive}: scene forgets root
3664DLGLOBAL DEBUG test(root){alive}: cleanup() done
3665DLGLOBAL DEBUG 1 (root.alive())
3666DLGLOBAL DEBUG test(root){alive}: Freeing instance
3667DLGLOBAL DEBUG test(root){alive}: Deallocated
3668DLGLOBAL DEBUG 0 (-)
3669DLGLOBAL DEBUG --- after destroy-event cascade:
3670DLGLOBAL DEBUG --- all deallocated.
3671*** loop_ctx contains 33 blocks, deallocating.
3672DLGLOBAL DEBUG scene_alloc()
3673DLGLOBAL DEBUG test(root){alive}: Allocated
3674DLGLOBAL DEBUG test(root){alive}: Allocated
3675DLGLOBAL DEBUG test(root){alive}: is child of test(root)
3676DLGLOBAL DEBUG test(_branch0){alive}: Allocated
3677DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
3678DLGLOBAL DEBUG test(_branch0){alive}: Allocated
3679DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
3680DLGLOBAL DEBUG test(root){alive}: Allocated
3681DLGLOBAL DEBUG test(root){alive}: is child of test(root)
3682DLGLOBAL DEBUG test(_branch1){alive}: Allocated
3683DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
3684DLGLOBAL DEBUG test(_branch1){alive}: Allocated
3685DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
3686DLGLOBAL DEBUG test(other){alive}: Allocated
3687DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
3688DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
3689DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
3690DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
3691DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
3692DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
3693DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
3694DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
3695DLGLOBAL DEBUG ------ before term cascade, got:
3696DLGLOBAL DEBUG root
3697DLGLOBAL DEBUG _branch0
3698DLGLOBAL DEBUG __twig0a
3699DLGLOBAL DEBUG __twig0b
3700DLGLOBAL DEBUG _branch1
3701DLGLOBAL DEBUG __twig1a
3702DLGLOBAL DEBUG __twig1b
3703DLGLOBAL DEBUG other
3704DLGLOBAL DEBUG ---
3705DLGLOBAL DEBUG --- term at _branch0
3706DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3707DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
3708DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3709DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
3710DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
3711DLGLOBAL DEBUG 1 (__twig0b.cleanup())
3712DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
3713DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
3714DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
3715DLGLOBAL DEBUG 2 (__twig0b.cleanup(),_branch0.alive())
3716DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
3717DLGLOBAL DEBUG 3 (__twig0b.cleanup(),_branch0.alive(),_branch0.child_gone())
3718DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
3719DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
3720DLGLOBAL DEBUG 2 (__twig0b.cleanup(),_branch0.alive())
3721DLGLOBAL DEBUG 1 (__twig0b.cleanup())
3722DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
3723DLGLOBAL DEBUG 0 (-)
3724DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
3725DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
3726DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3727DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
3728DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
3729DLGLOBAL DEBUG 1 (__twig0a.cleanup())
3730DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
3731DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
3732DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
3733DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
3734DLGLOBAL DEBUG 2 (__twig0a.cleanup(),other.alive())
3735DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
3736DLGLOBAL DEBUG 3 (__twig0a.cleanup(),other.alive(),other.other_gone())
3737DLGLOBAL DEBUG 2 (__twig0a.cleanup(),other.alive())
3738DLGLOBAL DEBUG 1 (__twig0a.cleanup())
3739DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
3740DLGLOBAL DEBUG 2 (__twig0a.cleanup(),_branch0.alive())
3741DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
3742DLGLOBAL DEBUG 3 (__twig0a.cleanup(),_branch0.alive(),_branch0.child_gone())
3743DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
3744DLGLOBAL DEBUG test(_branch0){alive}: No more children
3745DLGLOBAL DEBUG 2 (__twig0a.cleanup(),_branch0.alive())
3746DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
3747DLGLOBAL DEBUG 1 (__twig0a.cleanup())
3748DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
3749DLGLOBAL DEBUG 0 (-)
3750DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
3751DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
3752DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
3753DLGLOBAL DEBUG 1 (_branch0.cleanup())
3754DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
3755DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
3756DLGLOBAL DEBUG test(_branch0){alive}: removing reference _branch0.other[0] -> other
3757DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
3758DLGLOBAL DEBUG 2 (_branch0.cleanup(),other.alive())
3759DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
3760DLGLOBAL DEBUG 3 (_branch0.cleanup(),other.alive(),other.other_gone())
3761DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[0] = _branch0
3762DLGLOBAL DEBUG 2 (_branch0.cleanup(),other.alive())
3763DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3764DLGLOBAL DEBUG test(other){alive}: pre_term()
3765DLGLOBAL DEBUG 3 (_branch0.cleanup(),other.alive(),other.cleanup())
3766DLGLOBAL DEBUG test(other){alive}: cleanup()
3767DLGLOBAL DEBUG test(other){alive}: scene forgets other
3768DLGLOBAL DEBUG test(other){alive}: removing reference other.other[1] -> _branch1
3769DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_OTHER_GONE
3770DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
3771DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_OTHER_GONE)
3772DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.other_gone())
3773DLGLOBAL DEBUG test(_branch1){alive}: EV_OTHER_GONE: Dropped reference _branch1.other[0] = other
3774DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
3775DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3776DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
3777DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3778DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
3779DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
3780DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
3781DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
3782DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
3783DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
3784DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
3785DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
3786DLGLOBAL DEBUG 7 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup(),_branch1.child_gone())
3787DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
3788DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
3789DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
3790DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
3791DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
3792DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
3793DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
3794DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
3795DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3796DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
3797DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
3798DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
3799DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
3800DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
3801DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
3802DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
3803DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
3804DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
3805DLGLOBAL DEBUG 7 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.other_gone())
3806DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
3807DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
3808DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3809DLGLOBAL DEBUG test(root){alive}: pre_term()
3810DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
3811DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
3812DLGLOBAL DEBUG 7 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.cleanup())
3813DLGLOBAL DEBUG test(root){alive}: cleanup()
3814DLGLOBAL DEBUG test(root){alive}: scene forgets root
3815DLGLOBAL DEBUG test(root){alive}: cleanup() done
3816DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
3817DLGLOBAL DEBUG test(root){alive}: Freeing instance
3818DLGLOBAL DEBUG test(root){alive}: Deallocated
3819DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
3820DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
3821DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
3822DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
3823DLGLOBAL DEBUG 7 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup(),_branch1.child_gone())
3824DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
3825DLGLOBAL DEBUG test(_branch1){alive}: No more children
3826DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
3827DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
3828DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
3829DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
3830DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
3831DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
3832DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
3833DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
3834DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
3835DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
3836DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
3837DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3838DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
3839DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3840DLGLOBAL DEBUG 7 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive(),root.child_gone())
3841DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
3842DLGLOBAL DEBUG test(root){alive}: still exists: child[0]
3843DLGLOBAL DEBUG 6 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
3844DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
3845DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
3846DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
3847DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
3848DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
3849DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3850DLGLOBAL DEBUG 5 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),root.alive())
3851DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3852DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
3853DLGLOBAL DEBUG 4 (_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
3854DLGLOBAL DEBUG 3 (_branch0.cleanup(),other.alive(),other.cleanup())
3855DLGLOBAL DEBUG test(other){alive}: cleanup() done
3856DLGLOBAL DEBUG 2 (_branch0.cleanup(),other.alive())
3857DLGLOBAL DEBUG test(other){alive}: Freeing instance
3858DLGLOBAL DEBUG test(other){alive}: Deallocated
3859DLGLOBAL DEBUG 1 (_branch0.cleanup())
3860DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3861DLGLOBAL DEBUG 2 (_branch0.cleanup(),root.alive())
3862DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3863DLGLOBAL DEBUG 3 (_branch0.cleanup(),root.alive(),root.child_gone())
3864DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
3865DLGLOBAL DEBUG test(root){alive}: No more children
3866DLGLOBAL DEBUG 2 (_branch0.cleanup(),root.alive())
3867DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
3868DLGLOBAL DEBUG 1 (_branch0.cleanup())
3869DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
3870DLGLOBAL DEBUG 0 (-)
3871DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
3872DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
3873DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
3874DLGLOBAL DEBUG 1 (root.alive())
3875DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
3876DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
3877DLGLOBAL DEBUG 0 (-)
3878DLGLOBAL DEBUG --- after term cascade:
3879DLGLOBAL DEBUG --- all deallocated.
3880*** loop_ctx contains 33 blocks, deallocating.
3881DLGLOBAL DEBUG scene_alloc()
3882DLGLOBAL DEBUG test(root){alive}: Allocated
3883DLGLOBAL DEBUG test(root){alive}: Allocated
3884DLGLOBAL DEBUG test(root){alive}: is child of test(root)
3885DLGLOBAL DEBUG test(_branch0){alive}: Allocated
3886DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
3887DLGLOBAL DEBUG test(_branch0){alive}: Allocated
3888DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
3889DLGLOBAL DEBUG test(root){alive}: Allocated
3890DLGLOBAL DEBUG test(root){alive}: is child of test(root)
3891DLGLOBAL DEBUG test(_branch1){alive}: Allocated
3892DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
3893DLGLOBAL DEBUG test(_branch1){alive}: Allocated
3894DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
3895DLGLOBAL DEBUG test(other){alive}: Allocated
3896DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
3897DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
3898DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
3899DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
3900DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
3901DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
3902DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
3903DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
3904DLGLOBAL DEBUG ------ before destroy-event cascade, got:
3905DLGLOBAL DEBUG root
3906DLGLOBAL DEBUG _branch0
3907DLGLOBAL DEBUG __twig0a
3908DLGLOBAL DEBUG __twig0b
3909DLGLOBAL DEBUG _branch1
3910DLGLOBAL DEBUG __twig1a
3911DLGLOBAL DEBUG __twig1b
3912DLGLOBAL DEBUG other
3913DLGLOBAL DEBUG ---
3914DLGLOBAL DEBUG --- destroy-event at _branch0
3915DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_DESTROY
3916DLGLOBAL DEBUG 1 (_branch0.alive())
3917DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_DESTROY)
3918DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3919DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
3920DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3921DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
3922DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
3923DLGLOBAL DEBUG 2 (_branch0.alive(),__twig0b.cleanup())
3924DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
3925DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
3926DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
3927DLGLOBAL DEBUG 3 (2*_branch0.alive(),__twig0b.cleanup())
3928DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
3929DLGLOBAL DEBUG 4 (2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
3930DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
3931DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
3932DLGLOBAL DEBUG 3 (2*_branch0.alive(),__twig0b.cleanup())
3933DLGLOBAL DEBUG 2 (_branch0.alive(),__twig0b.cleanup())
3934DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
3935DLGLOBAL DEBUG 1 (_branch0.alive())
3936DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
3937DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
3938DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3939DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
3940DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
3941DLGLOBAL DEBUG 2 (_branch0.alive(),__twig0a.cleanup())
3942DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
3943DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
3944DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
3945DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
3946DLGLOBAL DEBUG 3 (_branch0.alive(),__twig0a.cleanup(),other.alive())
3947DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
3948DLGLOBAL DEBUG 4 (_branch0.alive(),__twig0a.cleanup(),other.alive(),other.other_gone())
3949DLGLOBAL DEBUG 3 (_branch0.alive(),__twig0a.cleanup(),other.alive())
3950DLGLOBAL DEBUG 2 (_branch0.alive(),__twig0a.cleanup())
3951DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
3952DLGLOBAL DEBUG 3 (2*_branch0.alive(),__twig0a.cleanup())
3953DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
3954DLGLOBAL DEBUG 4 (2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
3955DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
3956DLGLOBAL DEBUG test(_branch0){alive}: No more children
3957DLGLOBAL DEBUG 3 (2*_branch0.alive(),__twig0a.cleanup())
3958DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
3959DLGLOBAL DEBUG 2 (_branch0.alive(),__twig0a.cleanup())
3960DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
3961DLGLOBAL DEBUG 1 (_branch0.alive())
3962DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
3963DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
3964DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
3965DLGLOBAL DEBUG 2 (_branch0.alive(),_branch0.cleanup())
3966DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
3967DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
3968DLGLOBAL DEBUG test(_branch0){alive}: removing reference _branch0.other[0] -> other
3969DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
3970DLGLOBAL DEBUG 3 (_branch0.alive(),_branch0.cleanup(),other.alive())
3971DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
3972DLGLOBAL DEBUG 4 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.other_gone())
3973DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[0] = _branch0
3974DLGLOBAL DEBUG 3 (_branch0.alive(),_branch0.cleanup(),other.alive())
3975DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3976DLGLOBAL DEBUG test(other){alive}: pre_term()
3977DLGLOBAL DEBUG 4 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup())
3978DLGLOBAL DEBUG test(other){alive}: cleanup()
3979DLGLOBAL DEBUG test(other){alive}: scene forgets other
3980DLGLOBAL DEBUG test(other){alive}: removing reference other.other[1] -> _branch1
3981DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_OTHER_GONE
3982DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
3983DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_OTHER_GONE)
3984DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.other_gone())
3985DLGLOBAL DEBUG test(_branch1){alive}: EV_OTHER_GONE: Dropped reference _branch1.other[0] = other
3986DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
3987DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
3988DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
3989DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
3990DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
3991DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
3992DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
3993DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
3994DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
3995DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
3996DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
3997DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
3998DLGLOBAL DEBUG 8 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup(),_branch1.child_gone(
3999DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
4000DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
4001DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
4002DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
4003DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
4004DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
4005DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
4006DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
4007DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4008DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
4009DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
4010DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
4011DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
4012DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
4013DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
4014DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
4015DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
4016DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
4017DLGLOBAL DEBUG 8 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.othe
4018DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
4019DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
4020DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4021DLGLOBAL DEBUG test(root){alive}: pre_term()
4022DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
4023DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
4024DLGLOBAL DEBUG 8 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.clea
4025DLGLOBAL DEBUG test(root){alive}: cleanup()
4026DLGLOBAL DEBUG test(root){alive}: scene forgets root
4027DLGLOBAL DEBUG test(root){alive}: cleanup() done
4028DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
4029DLGLOBAL DEBUG test(root){alive}: Freeing instance
4030DLGLOBAL DEBUG test(root){alive}: Deallocated
4031DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
4032DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
4033DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
4034DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
4035DLGLOBAL DEBUG 8 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup(),_branch1.child_gone(
4036DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
4037DLGLOBAL DEBUG test(_branch1){alive}: No more children
4038DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
4039DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
4040DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
4041DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
4042DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
4043DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
4044DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
4045DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
4046DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
4047DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
4048DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
4049DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4050DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
4051DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4052DLGLOBAL DEBUG 8 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive(),root.chil
4053DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
4054DLGLOBAL DEBUG test(root){alive}: still exists: child[0]
4055DLGLOBAL DEBUG 7 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
4056DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
4057DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
4058DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
4059DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
4060DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
4061DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4062DLGLOBAL DEBUG 6 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive(),root.alive())
4063DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4064DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
4065DLGLOBAL DEBUG 5 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup(),_branch1.alive())
4066DLGLOBAL DEBUG 4 (_branch0.alive(),_branch0.cleanup(),other.alive(),other.cleanup())
4067DLGLOBAL DEBUG test(other){alive}: cleanup() done
4068DLGLOBAL DEBUG 3 (_branch0.alive(),_branch0.cleanup(),other.alive())
4069DLGLOBAL DEBUG test(other){alive}: Freeing instance
4070DLGLOBAL DEBUG test(other){alive}: Deallocated
4071DLGLOBAL DEBUG 2 (_branch0.alive(),_branch0.cleanup())
4072DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4073DLGLOBAL DEBUG 3 (_branch0.alive(),_branch0.cleanup(),root.alive())
4074DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4075DLGLOBAL DEBUG 4 (_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
4076DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
4077DLGLOBAL DEBUG test(root){alive}: No more children
4078DLGLOBAL DEBUG 3 (_branch0.alive(),_branch0.cleanup(),root.alive())
4079DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
4080DLGLOBAL DEBUG 2 (_branch0.alive(),_branch0.cleanup())
4081DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
4082DLGLOBAL DEBUG 1 (_branch0.alive())
4083DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
4084DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
4085DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4086DLGLOBAL DEBUG 2 (_branch0.alive(),root.alive())
4087DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4088DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
4089DLGLOBAL DEBUG 1 (_branch0.alive())
4090DLGLOBAL DEBUG 0 (-)
4091DLGLOBAL DEBUG --- after destroy-event cascade:
4092DLGLOBAL DEBUG --- all deallocated.
4093*** loop_ctx contains 33 blocks, deallocating.
4094DLGLOBAL DEBUG scene_alloc()
4095DLGLOBAL DEBUG test(root){alive}: Allocated
4096DLGLOBAL DEBUG test(root){alive}: Allocated
4097DLGLOBAL DEBUG test(root){alive}: is child of test(root)
4098DLGLOBAL DEBUG test(_branch0){alive}: Allocated
4099DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
4100DLGLOBAL DEBUG test(_branch0){alive}: Allocated
4101DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
4102DLGLOBAL DEBUG test(root){alive}: Allocated
4103DLGLOBAL DEBUG test(root){alive}: is child of test(root)
4104DLGLOBAL DEBUG test(_branch1){alive}: Allocated
4105DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
4106DLGLOBAL DEBUG test(_branch1){alive}: Allocated
4107DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
4108DLGLOBAL DEBUG test(other){alive}: Allocated
4109DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
4110DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
4111DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
4112DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
4113DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
4114DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
4115DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
4116DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
4117DLGLOBAL DEBUG ------ before term cascade, got:
4118DLGLOBAL DEBUG root
4119DLGLOBAL DEBUG _branch0
4120DLGLOBAL DEBUG __twig0a
4121DLGLOBAL DEBUG __twig0b
4122DLGLOBAL DEBUG _branch1
4123DLGLOBAL DEBUG __twig1a
4124DLGLOBAL DEBUG __twig1b
4125DLGLOBAL DEBUG other
4126DLGLOBAL DEBUG ---
4127DLGLOBAL DEBUG --- term at __twig0a
4128DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4129DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
4130DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
4131DLGLOBAL DEBUG 1 (__twig0a.cleanup())
4132DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
4133DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
4134DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
4135DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
4136DLGLOBAL DEBUG 2 (__twig0a.cleanup(),other.alive())
4137DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
4138DLGLOBAL DEBUG 3 (__twig0a.cleanup(),other.alive(),other.other_gone())
4139DLGLOBAL DEBUG 2 (__twig0a.cleanup(),other.alive())
4140DLGLOBAL DEBUG 1 (__twig0a.cleanup())
4141DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4142DLGLOBAL DEBUG 2 (__twig0a.cleanup(),_branch0.alive())
4143DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4144DLGLOBAL DEBUG 3 (__twig0a.cleanup(),_branch0.alive(),_branch0.child_gone())
4145DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
4146DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[1]
4147DLGLOBAL DEBUG 2 (__twig0a.cleanup(),_branch0.alive())
4148DLGLOBAL DEBUG 1 (__twig0a.cleanup())
4149DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
4150DLGLOBAL DEBUG 0 (-)
4151DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
4152DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
4153DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4154DLGLOBAL DEBUG 1 (_branch0.alive())
4155DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4156DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
4157DLGLOBAL DEBUG 0 (-)
4158DLGLOBAL DEBUG --- after term cascade:
4159DLGLOBAL DEBUG root
4160DLGLOBAL DEBUG _branch0
4161DLGLOBAL DEBUG __twig0b
4162DLGLOBAL DEBUG _branch1
4163DLGLOBAL DEBUG __twig1a
4164DLGLOBAL DEBUG __twig1b
4165DLGLOBAL DEBUG other
4166DLGLOBAL DEBUG --- 7 objects remain. cleaning up
4167*** loop_ctx contains 5 blocks, deallocating.
4168DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
4169DLGLOBAL DEBUG test(root){alive}: pre_term()
4170DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4171DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
4172DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4173DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
4174DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
4175DLGLOBAL DEBUG 1 (__twig1b.cleanup())
4176DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
4177DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
4178DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
4179DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
4180DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
4181DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
4182DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
4183DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
4184DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
4185DLGLOBAL DEBUG 1 (__twig1b.cleanup())
4186DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
4187DLGLOBAL DEBUG 0 (-)
4188DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
4189DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
4190DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4191DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
4192DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
4193DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4194DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
4195DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
4196DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
4197DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
4198DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
4199DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
4200DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
4201DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
4202DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
4203DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
4204DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4205DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
4206DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
4207DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
4208DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
4209DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
4210DLGLOBAL DEBUG test(_branch1){alive}: No more children
4211DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
4212DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
4213DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4214DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
4215DLGLOBAL DEBUG 0 (-)
4216DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
4217DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
4218DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
4219DLGLOBAL DEBUG 1 (_branch1.cleanup())
4220DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
4221DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
4222DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
4223DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
4224DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4225DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
4226DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
4227DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
4228DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4229DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4230DLGLOBAL DEBUG test(other){alive}: pre_term()
4231DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
4232DLGLOBAL DEBUG test(other){alive}: cleanup()
4233DLGLOBAL DEBUG test(other){alive}: scene forgets other
4234DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
4235DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
4236DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4237DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
4238DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
4239DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
4240DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4241DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4242DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
4243DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4244DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
4245DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
4246DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
4247DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
4248DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
4249DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4250DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
4251DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4252DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
4253DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
4254DLGLOBAL DEBUG test(_branch0){alive}: No more children
4255DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
4256DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
4257DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
4258DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
4259DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4260DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
4261DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
4262DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
4263DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
4264DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
4265DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
4266DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4267DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
4268DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4269DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
4270DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
4271DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
4272DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
4273DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
4274DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
4275DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4276DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
4277DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
4278DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4279DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
4280DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4281DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
4282DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4283DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
4284DLGLOBAL DEBUG test(other){alive}: cleanup() done
4285DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4286DLGLOBAL DEBUG test(other){alive}: Freeing instance
4287DLGLOBAL DEBUG test(other){alive}: Deallocated
4288DLGLOBAL DEBUG 1 (_branch1.cleanup())
4289DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4290DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
4291DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4292DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
4293DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
4294DLGLOBAL DEBUG test(root){alive}: No more children
4295DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
4296DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
4297DLGLOBAL DEBUG 1 (_branch1.cleanup())
4298DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
4299DLGLOBAL DEBUG 0 (-)
4300DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
4301DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
4302DLGLOBAL DEBUG 1 (root.cleanup())
4303DLGLOBAL DEBUG test(root){alive}: cleanup()
4304DLGLOBAL DEBUG test(root){alive}: scene forgets root
4305DLGLOBAL DEBUG test(root){alive}: cleanup() done
4306DLGLOBAL DEBUG 0 (-)
4307DLGLOBAL DEBUG test(root){alive}: Freeing instance
4308DLGLOBAL DEBUG test(root){alive}: Deallocated
4309DLGLOBAL DEBUG scene_alloc()
4310DLGLOBAL DEBUG test(root){alive}: Allocated
4311DLGLOBAL DEBUG test(root){alive}: Allocated
4312DLGLOBAL DEBUG test(root){alive}: is child of test(root)
4313DLGLOBAL DEBUG test(_branch0){alive}: Allocated
4314DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
4315DLGLOBAL DEBUG test(_branch0){alive}: Allocated
4316DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
4317DLGLOBAL DEBUG test(root){alive}: Allocated
4318DLGLOBAL DEBUG test(root){alive}: is child of test(root)
4319DLGLOBAL DEBUG test(_branch1){alive}: Allocated
4320DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
4321DLGLOBAL DEBUG test(_branch1){alive}: Allocated
4322DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
4323DLGLOBAL DEBUG test(other){alive}: Allocated
4324DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
4325DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
4326DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
4327DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
4328DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
4329DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
4330DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
4331DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
4332DLGLOBAL DEBUG ------ before destroy-event cascade, got:
4333DLGLOBAL DEBUG root
4334DLGLOBAL DEBUG _branch0
4335DLGLOBAL DEBUG __twig0a
4336DLGLOBAL DEBUG __twig0b
4337DLGLOBAL DEBUG _branch1
4338DLGLOBAL DEBUG __twig1a
4339DLGLOBAL DEBUG __twig1b
4340DLGLOBAL DEBUG other
4341DLGLOBAL DEBUG ---
4342DLGLOBAL DEBUG --- destroy-event at __twig0a
4343DLGLOBAL DEBUG test(__twig0a){alive}: Received Event EV_DESTROY
4344DLGLOBAL DEBUG 1 (__twig0a.alive())
4345DLGLOBAL DEBUG test(__twig0a){alive}: alive(EV_DESTROY)
4346DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4347DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
4348DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
4349DLGLOBAL DEBUG 2 (__twig0a.alive(),__twig0a.cleanup())
4350DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
4351DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
4352DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
4353DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
4354DLGLOBAL DEBUG 3 (__twig0a.alive(),__twig0a.cleanup(),other.alive())
4355DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
4356DLGLOBAL DEBUG 4 (__twig0a.alive(),__twig0a.cleanup(),other.alive(),other.other_gone())
4357DLGLOBAL DEBUG 3 (__twig0a.alive(),__twig0a.cleanup(),other.alive())
4358DLGLOBAL DEBUG 2 (__twig0a.alive(),__twig0a.cleanup())
4359DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4360DLGLOBAL DEBUG 3 (__twig0a.alive(),__twig0a.cleanup(),_branch0.alive())
4361DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4362DLGLOBAL DEBUG 4 (__twig0a.alive(),__twig0a.cleanup(),_branch0.alive(),_branch0.child_gone())
4363DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
4364DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[1]
4365DLGLOBAL DEBUG 3 (__twig0a.alive(),__twig0a.cleanup(),_branch0.alive())
4366DLGLOBAL DEBUG 2 (__twig0a.alive(),__twig0a.cleanup())
4367DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
4368DLGLOBAL DEBUG 1 (__twig0a.alive())
4369DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
4370DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
4371DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4372DLGLOBAL DEBUG 2 (__twig0a.alive(),_branch0.alive())
4373DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4374DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
4375DLGLOBAL DEBUG 1 (__twig0a.alive())
4376DLGLOBAL DEBUG 0 (-)
4377DLGLOBAL DEBUG --- after destroy-event cascade:
4378DLGLOBAL DEBUG root
4379DLGLOBAL DEBUG _branch0
4380DLGLOBAL DEBUG __twig0b
4381DLGLOBAL DEBUG _branch1
4382DLGLOBAL DEBUG __twig1a
4383DLGLOBAL DEBUG __twig1b
4384DLGLOBAL DEBUG other
4385DLGLOBAL DEBUG --- 7 objects remain. cleaning up
4386*** loop_ctx contains 5 blocks, deallocating.
4387DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
4388DLGLOBAL DEBUG test(root){alive}: pre_term()
4389DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4390DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
4391DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4392DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
4393DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
4394DLGLOBAL DEBUG 1 (__twig1b.cleanup())
4395DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
4396DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
4397DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
4398DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
4399DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
4400DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
4401DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
4402DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
4403DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
4404DLGLOBAL DEBUG 1 (__twig1b.cleanup())
4405DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
4406DLGLOBAL DEBUG 0 (-)
4407DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
4408DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
4409DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4410DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
4411DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
4412DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4413DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
4414DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
4415DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
4416DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
4417DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
4418DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
4419DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
4420DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
4421DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
4422DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
4423DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4424DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
4425DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
4426DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
4427DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
4428DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
4429DLGLOBAL DEBUG test(_branch1){alive}: No more children
4430DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
4431DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
4432DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4433DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
4434DLGLOBAL DEBUG 0 (-)
4435DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
4436DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
4437DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
4438DLGLOBAL DEBUG 1 (_branch1.cleanup())
4439DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
4440DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
4441DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
4442DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
4443DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4444DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
4445DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
4446DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
4447DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4448DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4449DLGLOBAL DEBUG test(other){alive}: pre_term()
4450DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
4451DLGLOBAL DEBUG test(other){alive}: cleanup()
4452DLGLOBAL DEBUG test(other){alive}: scene forgets other
4453DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
4454DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
4455DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4456DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
4457DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
4458DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
4459DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4460DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4461DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
4462DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4463DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
4464DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
4465DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
4466DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
4467DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
4468DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4469DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
4470DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4471DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
4472DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
4473DLGLOBAL DEBUG test(_branch0){alive}: No more children
4474DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
4475DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
4476DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
4477DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
4478DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4479DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
4480DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
4481DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
4482DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
4483DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
4484DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
4485DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4486DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
4487DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4488DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
4489DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
4490DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
4491DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
4492DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
4493DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
4494DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4495DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
4496DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
4497DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4498DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
4499DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4500DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
4501DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4502DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
4503DLGLOBAL DEBUG test(other){alive}: cleanup() done
4504DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4505DLGLOBAL DEBUG test(other){alive}: Freeing instance
4506DLGLOBAL DEBUG test(other){alive}: Deallocated
4507DLGLOBAL DEBUG 1 (_branch1.cleanup())
4508DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4509DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
4510DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4511DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
4512DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
4513DLGLOBAL DEBUG test(root){alive}: No more children
4514DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
4515DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
4516DLGLOBAL DEBUG 1 (_branch1.cleanup())
4517DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
4518DLGLOBAL DEBUG 0 (-)
4519DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
4520DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
4521DLGLOBAL DEBUG 1 (root.cleanup())
4522DLGLOBAL DEBUG test(root){alive}: cleanup()
4523DLGLOBAL DEBUG test(root){alive}: scene forgets root
4524DLGLOBAL DEBUG test(root){alive}: cleanup() done
4525DLGLOBAL DEBUG 0 (-)
4526DLGLOBAL DEBUG test(root){alive}: Freeing instance
4527DLGLOBAL DEBUG test(root){alive}: Deallocated
4528DLGLOBAL DEBUG scene_alloc()
4529DLGLOBAL DEBUG test(root){alive}: Allocated
4530DLGLOBAL DEBUG test(root){alive}: Allocated
4531DLGLOBAL DEBUG test(root){alive}: is child of test(root)
4532DLGLOBAL DEBUG test(_branch0){alive}: Allocated
4533DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
4534DLGLOBAL DEBUG test(_branch0){alive}: Allocated
4535DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
4536DLGLOBAL DEBUG test(root){alive}: Allocated
4537DLGLOBAL DEBUG test(root){alive}: is child of test(root)
4538DLGLOBAL DEBUG test(_branch1){alive}: Allocated
4539DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
4540DLGLOBAL DEBUG test(_branch1){alive}: Allocated
4541DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
4542DLGLOBAL DEBUG test(other){alive}: Allocated
4543DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
4544DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
4545DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
4546DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
4547DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
4548DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
4549DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
4550DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
4551DLGLOBAL DEBUG ------ before term cascade, got:
4552DLGLOBAL DEBUG root
4553DLGLOBAL DEBUG _branch0
4554DLGLOBAL DEBUG __twig0a
4555DLGLOBAL DEBUG __twig0b
4556DLGLOBAL DEBUG _branch1
4557DLGLOBAL DEBUG __twig1a
4558DLGLOBAL DEBUG __twig1b
4559DLGLOBAL DEBUG other
4560DLGLOBAL DEBUG ---
4561DLGLOBAL DEBUG --- term at __twig0b
4562DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4563DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
4564DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
4565DLGLOBAL DEBUG 1 (__twig0b.cleanup())
4566DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
4567DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
4568DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4569DLGLOBAL DEBUG 2 (__twig0b.cleanup(),_branch0.alive())
4570DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4571DLGLOBAL DEBUG 3 (__twig0b.cleanup(),_branch0.alive(),_branch0.child_gone())
4572DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
4573DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
4574DLGLOBAL DEBUG 2 (__twig0b.cleanup(),_branch0.alive())
4575DLGLOBAL DEBUG 1 (__twig0b.cleanup())
4576DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
4577DLGLOBAL DEBUG 0 (-)
4578DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
4579DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
4580DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4581DLGLOBAL DEBUG 1 (_branch0.alive())
4582DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4583DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
4584DLGLOBAL DEBUG 0 (-)
4585DLGLOBAL DEBUG --- after term cascade:
4586DLGLOBAL DEBUG root
4587DLGLOBAL DEBUG _branch0
4588DLGLOBAL DEBUG __twig0a
4589DLGLOBAL DEBUG _branch1
4590DLGLOBAL DEBUG __twig1a
4591DLGLOBAL DEBUG __twig1b
4592DLGLOBAL DEBUG other
4593DLGLOBAL DEBUG --- 7 objects remain. cleaning up
4594*** loop_ctx contains 5 blocks, deallocating.
4595DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
4596DLGLOBAL DEBUG test(root){alive}: pre_term()
4597DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4598DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
4599DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4600DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
4601DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
4602DLGLOBAL DEBUG 1 (__twig1b.cleanup())
4603DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
4604DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
4605DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
4606DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
4607DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
4608DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
4609DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
4610DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
4611DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
4612DLGLOBAL DEBUG 1 (__twig1b.cleanup())
4613DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
4614DLGLOBAL DEBUG 0 (-)
4615DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
4616DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
4617DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4618DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
4619DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
4620DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4621DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
4622DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
4623DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
4624DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
4625DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
4626DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
4627DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
4628DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
4629DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
4630DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
4631DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4632DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
4633DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
4634DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
4635DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
4636DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
4637DLGLOBAL DEBUG test(_branch1){alive}: No more children
4638DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
4639DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
4640DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4641DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
4642DLGLOBAL DEBUG 0 (-)
4643DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
4644DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
4645DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
4646DLGLOBAL DEBUG 1 (_branch1.cleanup())
4647DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
4648DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
4649DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
4650DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
4651DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4652DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
4653DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
4654DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
4655DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4656DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4657DLGLOBAL DEBUG test(other){alive}: pre_term()
4658DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
4659DLGLOBAL DEBUG test(other){alive}: cleanup()
4660DLGLOBAL DEBUG test(other){alive}: scene forgets other
4661DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
4662DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
4663DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4664DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
4665DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
4666DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
4667DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4668DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4669DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
4670DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4671DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
4672DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
4673DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
4674DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
4675DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
4676DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
4677DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
4678DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
4679DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
4680DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
4681DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
4682DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
4683DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4684DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
4685DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4686DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
4687DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
4688DLGLOBAL DEBUG test(_branch0){alive}: No more children
4689DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
4690DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
4691DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
4692DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
4693DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4694DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
4695DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
4696DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
4697DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
4698DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
4699DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
4700DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4701DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
4702DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4703DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
4704DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
4705DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
4706DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
4707DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
4708DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
4709DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4710DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
4711DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
4712DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4713DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
4714DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4715DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
4716DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4717DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
4718DLGLOBAL DEBUG test(other){alive}: cleanup() done
4719DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4720DLGLOBAL DEBUG test(other){alive}: Freeing instance
4721DLGLOBAL DEBUG test(other){alive}: Deallocated
4722DLGLOBAL DEBUG 1 (_branch1.cleanup())
4723DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4724DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
4725DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4726DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
4727DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
4728DLGLOBAL DEBUG test(root){alive}: No more children
4729DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
4730DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
4731DLGLOBAL DEBUG 1 (_branch1.cleanup())
4732DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
4733DLGLOBAL DEBUG 0 (-)
4734DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
4735DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
4736DLGLOBAL DEBUG 1 (root.cleanup())
4737DLGLOBAL DEBUG test(root){alive}: cleanup()
4738DLGLOBAL DEBUG test(root){alive}: scene forgets root
4739DLGLOBAL DEBUG test(root){alive}: cleanup() done
4740DLGLOBAL DEBUG 0 (-)
4741DLGLOBAL DEBUG test(root){alive}: Freeing instance
4742DLGLOBAL DEBUG test(root){alive}: Deallocated
4743DLGLOBAL DEBUG scene_alloc()
4744DLGLOBAL DEBUG test(root){alive}: Allocated
4745DLGLOBAL DEBUG test(root){alive}: Allocated
4746DLGLOBAL DEBUG test(root){alive}: is child of test(root)
4747DLGLOBAL DEBUG test(_branch0){alive}: Allocated
4748DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
4749DLGLOBAL DEBUG test(_branch0){alive}: Allocated
4750DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
4751DLGLOBAL DEBUG test(root){alive}: Allocated
4752DLGLOBAL DEBUG test(root){alive}: is child of test(root)
4753DLGLOBAL DEBUG test(_branch1){alive}: Allocated
4754DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
4755DLGLOBAL DEBUG test(_branch1){alive}: Allocated
4756DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
4757DLGLOBAL DEBUG test(other){alive}: Allocated
4758DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
4759DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
4760DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
4761DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
4762DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
4763DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
4764DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
4765DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
4766DLGLOBAL DEBUG ------ before destroy-event cascade, got:
4767DLGLOBAL DEBUG root
4768DLGLOBAL DEBUG _branch0
4769DLGLOBAL DEBUG __twig0a
4770DLGLOBAL DEBUG __twig0b
4771DLGLOBAL DEBUG _branch1
4772DLGLOBAL DEBUG __twig1a
4773DLGLOBAL DEBUG __twig1b
4774DLGLOBAL DEBUG other
4775DLGLOBAL DEBUG ---
4776DLGLOBAL DEBUG --- destroy-event at __twig0b
4777DLGLOBAL DEBUG test(__twig0b){alive}: Received Event EV_DESTROY
4778DLGLOBAL DEBUG 1 (__twig0b.alive())
4779DLGLOBAL DEBUG test(__twig0b){alive}: alive(EV_DESTROY)
4780DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4781DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
4782DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
4783DLGLOBAL DEBUG 2 (__twig0b.alive(),__twig0b.cleanup())
4784DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
4785DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
4786DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4787DLGLOBAL DEBUG 3 (__twig0b.alive(),__twig0b.cleanup(),_branch0.alive())
4788DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4789DLGLOBAL DEBUG 4 (__twig0b.alive(),__twig0b.cleanup(),_branch0.alive(),_branch0.child_gone())
4790DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
4791DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
4792DLGLOBAL DEBUG 3 (__twig0b.alive(),__twig0b.cleanup(),_branch0.alive())
4793DLGLOBAL DEBUG 2 (__twig0b.alive(),__twig0b.cleanup())
4794DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
4795DLGLOBAL DEBUG 1 (__twig0b.alive())
4796DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
4797DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
4798DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4799DLGLOBAL DEBUG 2 (__twig0b.alive(),_branch0.alive())
4800DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4801DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
4802DLGLOBAL DEBUG 1 (__twig0b.alive())
4803DLGLOBAL DEBUG 0 (-)
4804DLGLOBAL DEBUG --- after destroy-event cascade:
4805DLGLOBAL DEBUG root
4806DLGLOBAL DEBUG _branch0
4807DLGLOBAL DEBUG __twig0a
4808DLGLOBAL DEBUG _branch1
4809DLGLOBAL DEBUG __twig1a
4810DLGLOBAL DEBUG __twig1b
4811DLGLOBAL DEBUG other
4812DLGLOBAL DEBUG --- 7 objects remain. cleaning up
4813*** loop_ctx contains 5 blocks, deallocating.
4814DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
4815DLGLOBAL DEBUG test(root){alive}: pre_term()
4816DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4817DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
4818DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4819DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
4820DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
4821DLGLOBAL DEBUG 1 (__twig1b.cleanup())
4822DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
4823DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
4824DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
4825DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
4826DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
4827DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
4828DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
4829DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
4830DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
4831DLGLOBAL DEBUG 1 (__twig1b.cleanup())
4832DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
4833DLGLOBAL DEBUG 0 (-)
4834DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
4835DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
4836DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4837DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
4838DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
4839DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4840DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
4841DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
4842DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
4843DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
4844DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
4845DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
4846DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
4847DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
4848DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
4849DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
4850DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4851DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
4852DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
4853DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
4854DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
4855DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
4856DLGLOBAL DEBUG test(_branch1){alive}: No more children
4857DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
4858DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
4859DLGLOBAL DEBUG 1 (__twig1a.cleanup())
4860DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
4861DLGLOBAL DEBUG 0 (-)
4862DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
4863DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
4864DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
4865DLGLOBAL DEBUG 1 (_branch1.cleanup())
4866DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
4867DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
4868DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
4869DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
4870DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4871DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
4872DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
4873DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
4874DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4875DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4876DLGLOBAL DEBUG test(other){alive}: pre_term()
4877DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
4878DLGLOBAL DEBUG test(other){alive}: cleanup()
4879DLGLOBAL DEBUG test(other){alive}: scene forgets other
4880DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
4881DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
4882DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4883DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
4884DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
4885DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
4886DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4887DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4888DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
4889DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4890DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
4891DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
4892DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
4893DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
4894DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
4895DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
4896DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
4897DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
4898DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
4899DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
4900DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
4901DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
4902DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
4903DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
4904DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
4905DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
4906DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
4907DLGLOBAL DEBUG test(_branch0){alive}: No more children
4908DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
4909DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
4910DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
4911DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
4912DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4913DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
4914DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
4915DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
4916DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
4917DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
4918DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
4919DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4920DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
4921DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4922DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
4923DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
4924DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
4925DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
4926DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
4927DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
4928DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4929DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
4930DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
4931DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4932DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
4933DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4934DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
4935DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
4936DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
4937DLGLOBAL DEBUG test(other){alive}: cleanup() done
4938DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
4939DLGLOBAL DEBUG test(other){alive}: Freeing instance
4940DLGLOBAL DEBUG test(other){alive}: Deallocated
4941DLGLOBAL DEBUG 1 (_branch1.cleanup())
4942DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
4943DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
4944DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
4945DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
4946DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
4947DLGLOBAL DEBUG test(root){alive}: No more children
4948DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
4949DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
4950DLGLOBAL DEBUG 1 (_branch1.cleanup())
4951DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
4952DLGLOBAL DEBUG 0 (-)
4953DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
4954DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
4955DLGLOBAL DEBUG 1 (root.cleanup())
4956DLGLOBAL DEBUG test(root){alive}: cleanup()
4957DLGLOBAL DEBUG test(root){alive}: scene forgets root
4958DLGLOBAL DEBUG test(root){alive}: cleanup() done
4959DLGLOBAL DEBUG 0 (-)
4960DLGLOBAL DEBUG test(root){alive}: Freeing instance
4961DLGLOBAL DEBUG test(root){alive}: Deallocated
4962DLGLOBAL DEBUG scene_alloc()
4963DLGLOBAL DEBUG test(root){alive}: Allocated
4964DLGLOBAL DEBUG test(root){alive}: Allocated
4965DLGLOBAL DEBUG test(root){alive}: is child of test(root)
4966DLGLOBAL DEBUG test(_branch0){alive}: Allocated
4967DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
4968DLGLOBAL DEBUG test(_branch0){alive}: Allocated
4969DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
4970DLGLOBAL DEBUG test(root){alive}: Allocated
4971DLGLOBAL DEBUG test(root){alive}: is child of test(root)
4972DLGLOBAL DEBUG test(_branch1){alive}: Allocated
4973DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
4974DLGLOBAL DEBUG test(_branch1){alive}: Allocated
4975DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
4976DLGLOBAL DEBUG test(other){alive}: Allocated
4977DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
4978DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
4979DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
4980DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
4981DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
4982DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
4983DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
4984DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
4985DLGLOBAL DEBUG ------ before term cascade, got:
4986DLGLOBAL DEBUG root
4987DLGLOBAL DEBUG _branch0
4988DLGLOBAL DEBUG __twig0a
4989DLGLOBAL DEBUG __twig0b
4990DLGLOBAL DEBUG _branch1
4991DLGLOBAL DEBUG __twig1a
4992DLGLOBAL DEBUG __twig1b
4993DLGLOBAL DEBUG other
4994DLGLOBAL DEBUG ---
4995DLGLOBAL DEBUG --- term at _branch1
4996DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
4997DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
4998DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
4999DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
5000DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
5001DLGLOBAL DEBUG 1 (__twig1b.cleanup())
5002DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
5003DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
5004DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5005DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
5006DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5007DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
5008DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
5009DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
5010DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
5011DLGLOBAL DEBUG 1 (__twig1b.cleanup())
5012DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
5013DLGLOBAL DEBUG 0 (-)
5014DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
5015DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
5016DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5017DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
5018DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
5019DLGLOBAL DEBUG 1 (__twig1a.cleanup())
5020DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
5021DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
5022DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
5023DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
5024DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
5025DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
5026DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
5027DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
5028DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
5029DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5030DLGLOBAL DEBUG test(root){alive}: pre_term()
5031DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
5032DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
5033DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.cleanup())
5034DLGLOBAL DEBUG test(root){alive}: cleanup()
5035DLGLOBAL DEBUG test(root){alive}: scene forgets root
5036DLGLOBAL DEBUG test(root){alive}: cleanup() done
5037DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
5038DLGLOBAL DEBUG test(root){alive}: Freeing instance
5039DLGLOBAL DEBUG test(root){alive}: Deallocated
5040DLGLOBAL DEBUG 1 (__twig1a.cleanup())
5041DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5042DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
5043DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5044DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
5045DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
5046DLGLOBAL DEBUG test(_branch1){alive}: No more children
5047DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
5048DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
5049DLGLOBAL DEBUG 1 (__twig1a.cleanup())
5050DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
5051DLGLOBAL DEBUG 0 (-)
5052DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
5053DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
5054DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
5055DLGLOBAL DEBUG 1 (_branch1.cleanup())
5056DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
5057DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
5058DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
5059DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
5060DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
5061DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
5062DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
5063DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
5064DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
5065DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5066DLGLOBAL DEBUG test(other){alive}: pre_term()
5067DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
5068DLGLOBAL DEBUG test(other){alive}: cleanup()
5069DLGLOBAL DEBUG test(other){alive}: scene forgets other
5070DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
5071DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
5072DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5073DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
5074DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
5075DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
5076DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5077DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5078DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
5079DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5080DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
5081DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
5082DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
5083DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
5084DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
5085DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
5086DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
5087DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
5088DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
5089DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
5090DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
5091DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
5092DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
5093DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
5094DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5095DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
5096DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
5097DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5098DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
5099DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
5100DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5101DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
5102DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
5103DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
5104DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
5105DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5106DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
5107DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
5108DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5109DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5110DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
5111DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
5112DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
5113DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
5114DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
5115DLGLOBAL DEBUG test(_branch0){alive}: No more children
5116DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
5117DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
5118DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5119DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
5120DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5121DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
5122DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
5123DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
5124DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
5125DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
5126DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
5127DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5128DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
5129DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5130DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
5131DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
5132DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
5133DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
5134DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
5135DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
5136DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5137DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
5138DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
5139DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5140DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
5141DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5142DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
5143DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5144DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
5145DLGLOBAL DEBUG test(other){alive}: cleanup() done
5146DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
5147DLGLOBAL DEBUG test(other){alive}: Freeing instance
5148DLGLOBAL DEBUG test(other){alive}: Deallocated
5149DLGLOBAL DEBUG 1 (_branch1.cleanup())
5150DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5151DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
5152DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5153DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
5154DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
5155DLGLOBAL DEBUG test(root){alive}: No more children
5156DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
5157DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
5158DLGLOBAL DEBUG 1 (_branch1.cleanup())
5159DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
5160DLGLOBAL DEBUG 0 (-)
5161DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
5162DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
5163DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5164DLGLOBAL DEBUG 1 (root.alive())
5165DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5166DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
5167DLGLOBAL DEBUG 0 (-)
5168DLGLOBAL DEBUG --- after term cascade:
5169DLGLOBAL DEBUG --- all deallocated.
5170*** loop_ctx contains 33 blocks, deallocating.
5171DLGLOBAL DEBUG scene_alloc()
5172DLGLOBAL DEBUG test(root){alive}: Allocated
5173DLGLOBAL DEBUG test(root){alive}: Allocated
5174DLGLOBAL DEBUG test(root){alive}: is child of test(root)
5175DLGLOBAL DEBUG test(_branch0){alive}: Allocated
5176DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
5177DLGLOBAL DEBUG test(_branch0){alive}: Allocated
5178DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
5179DLGLOBAL DEBUG test(root){alive}: Allocated
5180DLGLOBAL DEBUG test(root){alive}: is child of test(root)
5181DLGLOBAL DEBUG test(_branch1){alive}: Allocated
5182DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
5183DLGLOBAL DEBUG test(_branch1){alive}: Allocated
5184DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
5185DLGLOBAL DEBUG test(other){alive}: Allocated
5186DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
5187DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
5188DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
5189DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
5190DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
5191DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
5192DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
5193DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
5194DLGLOBAL DEBUG ------ before destroy-event cascade, got:
5195DLGLOBAL DEBUG root
5196DLGLOBAL DEBUG _branch0
5197DLGLOBAL DEBUG __twig0a
5198DLGLOBAL DEBUG __twig0b
5199DLGLOBAL DEBUG _branch1
5200DLGLOBAL DEBUG __twig1a
5201DLGLOBAL DEBUG __twig1b
5202DLGLOBAL DEBUG other
5203DLGLOBAL DEBUG ---
5204DLGLOBAL DEBUG --- destroy-event at _branch1
5205DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_DESTROY
5206DLGLOBAL DEBUG 1 (_branch1.alive())
5207DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_DESTROY)
5208DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5209DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
5210DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5211DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
5212DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
5213DLGLOBAL DEBUG 2 (_branch1.alive(),__twig1b.cleanup())
5214DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
5215DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
5216DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5217DLGLOBAL DEBUG 3 (2*_branch1.alive(),__twig1b.cleanup())
5218DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5219DLGLOBAL DEBUG 4 (2*_branch1.alive(),__twig1b.cleanup(),_branch1.child_gone())
5220DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
5221DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
5222DLGLOBAL DEBUG 3 (2*_branch1.alive(),__twig1b.cleanup())
5223DLGLOBAL DEBUG 2 (_branch1.alive(),__twig1b.cleanup())
5224DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
5225DLGLOBAL DEBUG 1 (_branch1.alive())
5226DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
5227DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
5228DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5229DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
5230DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
5231DLGLOBAL DEBUG 2 (_branch1.alive(),__twig1a.cleanup())
5232DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
5233DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
5234DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
5235DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
5236DLGLOBAL DEBUG 3 (_branch1.alive(),__twig1a.cleanup(),root.alive())
5237DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
5238DLGLOBAL DEBUG 4 (_branch1.alive(),__twig1a.cleanup(),root.alive(),root.other_gone())
5239DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
5240DLGLOBAL DEBUG 3 (_branch1.alive(),__twig1a.cleanup(),root.alive())
5241DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5242DLGLOBAL DEBUG test(root){alive}: pre_term()
5243DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
5244DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
5245DLGLOBAL DEBUG 4 (_branch1.alive(),__twig1a.cleanup(),root.alive(),root.cleanup())
5246DLGLOBAL DEBUG test(root){alive}: cleanup()
5247DLGLOBAL DEBUG test(root){alive}: scene forgets root
5248DLGLOBAL DEBUG test(root){alive}: cleanup() done
5249DLGLOBAL DEBUG 3 (_branch1.alive(),__twig1a.cleanup(),root.alive())
5250DLGLOBAL DEBUG test(root){alive}: Freeing instance
5251DLGLOBAL DEBUG test(root){alive}: Deallocated
5252DLGLOBAL DEBUG 2 (_branch1.alive(),__twig1a.cleanup())
5253DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5254DLGLOBAL DEBUG 3 (2*_branch1.alive(),__twig1a.cleanup())
5255DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5256DLGLOBAL DEBUG 4 (2*_branch1.alive(),__twig1a.cleanup(),_branch1.child_gone())
5257DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
5258DLGLOBAL DEBUG test(_branch1){alive}: No more children
5259DLGLOBAL DEBUG 3 (2*_branch1.alive(),__twig1a.cleanup())
5260DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
5261DLGLOBAL DEBUG 2 (_branch1.alive(),__twig1a.cleanup())
5262DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
5263DLGLOBAL DEBUG 1 (_branch1.alive())
5264DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
5265DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
5266DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
5267DLGLOBAL DEBUG 2 (_branch1.alive(),_branch1.cleanup())
5268DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
5269DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
5270DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
5271DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
5272DLGLOBAL DEBUG 3 (_branch1.alive(),_branch1.cleanup(),other.alive())
5273DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
5274DLGLOBAL DEBUG 4 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.other_gone())
5275DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
5276DLGLOBAL DEBUG 3 (_branch1.alive(),_branch1.cleanup(),other.alive())
5277DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5278DLGLOBAL DEBUG test(other){alive}: pre_term()
5279DLGLOBAL DEBUG 4 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
5280DLGLOBAL DEBUG test(other){alive}: cleanup()
5281DLGLOBAL DEBUG test(other){alive}: scene forgets other
5282DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
5283DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
5284DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5285DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
5286DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
5287DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
5288DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5289DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5290DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
5291DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5292DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
5293DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
5294DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
5295DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
5296DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
5297DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
5298DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
5299DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
5300DLGLOBAL DEBUG 8 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone(
5301DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
5302DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
5303DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
5304DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
5305DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
5306DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5307DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
5308DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
5309DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5310DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
5311DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
5312DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5313DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
5314DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
5315DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
5316DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
5317DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5318DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
5319DLGLOBAL DEBUG 8 (_branch1.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
5320DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5321DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5322DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
5323DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
5324DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
5325DLGLOBAL DEBUG 8 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone(
5326DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
5327DLGLOBAL DEBUG test(_branch0){alive}: No more children
5328DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
5329DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
5330DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5331DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
5332DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5333DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
5334DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
5335DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
5336DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
5337DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
5338DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
5339DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5340DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
5341DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5342DLGLOBAL DEBUG 8 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.chil
5343DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
5344DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
5345DLGLOBAL DEBUG 7 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
5346DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
5347DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
5348DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5349DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
5350DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
5351DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5352DLGLOBAL DEBUG 6 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
5353DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5354DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
5355DLGLOBAL DEBUG 5 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5356DLGLOBAL DEBUG 4 (_branch1.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
5357DLGLOBAL DEBUG test(other){alive}: cleanup() done
5358DLGLOBAL DEBUG 3 (_branch1.alive(),_branch1.cleanup(),other.alive())
5359DLGLOBAL DEBUG test(other){alive}: Freeing instance
5360DLGLOBAL DEBUG test(other){alive}: Deallocated
5361DLGLOBAL DEBUG 2 (_branch1.alive(),_branch1.cleanup())
5362DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5363DLGLOBAL DEBUG 3 (_branch1.alive(),_branch1.cleanup(),root.alive())
5364DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5365DLGLOBAL DEBUG 4 (_branch1.alive(),_branch1.cleanup(),root.alive(),root.child_gone())
5366DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
5367DLGLOBAL DEBUG test(root){alive}: No more children
5368DLGLOBAL DEBUG 3 (_branch1.alive(),_branch1.cleanup(),root.alive())
5369DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
5370DLGLOBAL DEBUG 2 (_branch1.alive(),_branch1.cleanup())
5371DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
5372DLGLOBAL DEBUG 1 (_branch1.alive())
5373DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
5374DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
5375DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5376DLGLOBAL DEBUG 2 (_branch1.alive(),root.alive())
5377DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5378DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
5379DLGLOBAL DEBUG 1 (_branch1.alive())
5380DLGLOBAL DEBUG 0 (-)
5381DLGLOBAL DEBUG --- after destroy-event cascade:
5382DLGLOBAL DEBUG --- all deallocated.
5383*** loop_ctx contains 33 blocks, deallocating.
5384DLGLOBAL DEBUG scene_alloc()
5385DLGLOBAL DEBUG test(root){alive}: Allocated
5386DLGLOBAL DEBUG test(root){alive}: Allocated
5387DLGLOBAL DEBUG test(root){alive}: is child of test(root)
5388DLGLOBAL DEBUG test(_branch0){alive}: Allocated
5389DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
5390DLGLOBAL DEBUG test(_branch0){alive}: Allocated
5391DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
5392DLGLOBAL DEBUG test(root){alive}: Allocated
5393DLGLOBAL DEBUG test(root){alive}: is child of test(root)
5394DLGLOBAL DEBUG test(_branch1){alive}: Allocated
5395DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
5396DLGLOBAL DEBUG test(_branch1){alive}: Allocated
5397DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
5398DLGLOBAL DEBUG test(other){alive}: Allocated
5399DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
5400DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
5401DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
5402DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
5403DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
5404DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
5405DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
5406DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
5407DLGLOBAL DEBUG ------ before term cascade, got:
5408DLGLOBAL DEBUG root
5409DLGLOBAL DEBUG _branch0
5410DLGLOBAL DEBUG __twig0a
5411DLGLOBAL DEBUG __twig0b
5412DLGLOBAL DEBUG _branch1
5413DLGLOBAL DEBUG __twig1a
5414DLGLOBAL DEBUG __twig1b
5415DLGLOBAL DEBUG other
5416DLGLOBAL DEBUG ---
5417DLGLOBAL DEBUG --- term at __twig1a
5418DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5419DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
5420DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
5421DLGLOBAL DEBUG 1 (__twig1a.cleanup())
5422DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
5423DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
5424DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
5425DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
5426DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
5427DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
5428DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
5429DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
5430DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
5431DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5432DLGLOBAL DEBUG test(root){alive}: pre_term()
5433DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5434DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
5435DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5436DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
5437DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
5438DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),__twig1b.cleanup())
5439DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
5440DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
5441DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5442DLGLOBAL DEBUG 4 (__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive())
5443DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5444DLGLOBAL DEBUG 5 (__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
5445DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
5446DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
5447DLGLOBAL DEBUG 4 (__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive())
5448DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),__twig1b.cleanup())
5449DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
5450DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
5451DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
5452DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
5453DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
5454DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),_branch1.cleanup())
5455DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
5456DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
5457DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
5458DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
5459DLGLOBAL DEBUG 4 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
5460DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
5461DLGLOBAL DEBUG 5 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.other_gone())
5462DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
5463DLGLOBAL DEBUG 4 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
5464DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5465DLGLOBAL DEBUG test(other){alive}: pre_term()
5466DLGLOBAL DEBUG 5 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
5467DLGLOBAL DEBUG test(other){alive}: cleanup()
5468DLGLOBAL DEBUG test(other){alive}: scene forgets other
5469DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
5470DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
5471DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5472DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
5473DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
5474DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
5475DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5476DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5477DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
5478DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5479DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
5480DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
5481DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
5482DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
5483DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
5484DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
5485DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
5486DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
5487DLGLOBAL DEBUG 9 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_bran
5488DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
5489DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
5490DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
5491DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
5492DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
5493DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5494DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
5495DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
5496DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5497DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
5498DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
5499DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5500DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
5501DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
5502DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
5503DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
5504DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5505DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
5506DLGLOBAL DEBUG 9 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other
5507DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5508DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5509DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
5510DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
5511DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
5512DLGLOBAL DEBUG 9 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_bran
5513DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
5514DLGLOBAL DEBUG test(_branch0){alive}: No more children
5515DLGLOBAL DEBUG 8 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
5516DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
5517DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5518DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
5519DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5520DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
5521DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
5522DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
5523DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
5524DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
5525DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
5526DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5527DLGLOBAL DEBUG 8 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
5528DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5529DLGLOBAL DEBUG 9 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.
5530DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
5531DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
5532DLGLOBAL DEBUG 8 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
5533DLGLOBAL DEBUG 7 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
5534DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
5535DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5536DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
5537DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
5538DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5539DLGLOBAL DEBUG 7 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5540DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5541DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
5542DLGLOBAL DEBUG 6 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5543DLGLOBAL DEBUG 5 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
5544DLGLOBAL DEBUG test(other){alive}: cleanup() done
5545DLGLOBAL DEBUG 4 (__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
5546DLGLOBAL DEBUG test(other){alive}: Freeing instance
5547DLGLOBAL DEBUG test(other){alive}: Deallocated
5548DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),_branch1.cleanup())
5549DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5550DLGLOBAL DEBUG 4 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup())
5551DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5552DLGLOBAL DEBUG 5 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),root.child_gone())
5553DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
5554DLGLOBAL DEBUG test(root){alive}: No more children
5555DLGLOBAL DEBUG 4 (__twig1a.cleanup(),2*root.alive(),_branch1.cleanup())
5556DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
5557DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),_branch1.cleanup())
5558DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
5559DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
5560DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
5561DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
5562DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.cleanup())
5563DLGLOBAL DEBUG test(root){alive}: cleanup()
5564DLGLOBAL DEBUG test(root){alive}: scene forgets root
5565DLGLOBAL DEBUG test(root){alive}: cleanup() done
5566DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
5567DLGLOBAL DEBUG test(root){alive}: Freeing instance
5568DLGLOBAL DEBUG test(root){alive}: Deallocated
5569DLGLOBAL DEBUG 1 (__twig1a.cleanup())
5570DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5571DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
5572DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5573DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
5574DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
5575DLGLOBAL DEBUG test(_branch1){alive}: No more children
5576DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
5577DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
5578DLGLOBAL DEBUG 1 (__twig1a.cleanup())
5579DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
5580DLGLOBAL DEBUG 0 (-)
5581DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
5582DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
5583DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5584DLGLOBAL DEBUG 1 (_branch1.alive())
5585DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5586DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
5587DLGLOBAL DEBUG 0 (-)
5588DLGLOBAL DEBUG --- after term cascade:
5589DLGLOBAL DEBUG --- all deallocated.
5590*** loop_ctx contains 33 blocks, deallocating.
5591DLGLOBAL DEBUG scene_alloc()
5592DLGLOBAL DEBUG test(root){alive}: Allocated
5593DLGLOBAL DEBUG test(root){alive}: Allocated
5594DLGLOBAL DEBUG test(root){alive}: is child of test(root)
5595DLGLOBAL DEBUG test(_branch0){alive}: Allocated
5596DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
5597DLGLOBAL DEBUG test(_branch0){alive}: Allocated
5598DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
5599DLGLOBAL DEBUG test(root){alive}: Allocated
5600DLGLOBAL DEBUG test(root){alive}: is child of test(root)
5601DLGLOBAL DEBUG test(_branch1){alive}: Allocated
5602DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
5603DLGLOBAL DEBUG test(_branch1){alive}: Allocated
5604DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
5605DLGLOBAL DEBUG test(other){alive}: Allocated
5606DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
5607DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
5608DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
5609DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
5610DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
5611DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
5612DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
5613DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
5614DLGLOBAL DEBUG ------ before destroy-event cascade, got:
5615DLGLOBAL DEBUG root
5616DLGLOBAL DEBUG _branch0
5617DLGLOBAL DEBUG __twig0a
5618DLGLOBAL DEBUG __twig0b
5619DLGLOBAL DEBUG _branch1
5620DLGLOBAL DEBUG __twig1a
5621DLGLOBAL DEBUG __twig1b
5622DLGLOBAL DEBUG other
5623DLGLOBAL DEBUG ---
5624DLGLOBAL DEBUG --- destroy-event at __twig1a
5625DLGLOBAL DEBUG test(__twig1a){alive}: Received Event EV_DESTROY
5626DLGLOBAL DEBUG 1 (__twig1a.alive())
5627DLGLOBAL DEBUG test(__twig1a){alive}: alive(EV_DESTROY)
5628DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5629DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
5630DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
5631DLGLOBAL DEBUG 2 (__twig1a.alive(),__twig1a.cleanup())
5632DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
5633DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
5634DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
5635DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
5636DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),root.alive())
5637DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
5638DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),root.other_gone())
5639DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
5640DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),root.alive())
5641DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5642DLGLOBAL DEBUG test(root){alive}: pre_term()
5643DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5644DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
5645DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5646DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
5647DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
5648DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),__twig1b.cleanup())
5649DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
5650DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
5651DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5652DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive())
5653DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5654DLGLOBAL DEBUG 6 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
5655DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
5656DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
5657DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),__twig1b.cleanup(),_branch1.alive())
5658DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),__twig1b.cleanup())
5659DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
5660DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),root.alive())
5661DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
5662DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
5663DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
5664DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup())
5665DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
5666DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
5667DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
5668DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
5669DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
5670DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
5671DLGLOBAL DEBUG 6 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.other_gone())
5672DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
5673DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
5674DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5675DLGLOBAL DEBUG test(other){alive}: pre_term()
5676DLGLOBAL DEBUG 6 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
5677DLGLOBAL DEBUG test(other){alive}: cleanup()
5678DLGLOBAL DEBUG test(other){alive}: scene forgets other
5679DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
5680DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
5681DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5682DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
5683DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.
5684DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
5685DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5686DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5687DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
5688DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5689DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
5690DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
5691DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.
5692DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
5693DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
5694DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
5695DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0
5696DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
5697DLGLOBAL DEBUG 10 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig
5698DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
5699DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
5700DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0
5701DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.
5702DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
5703DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5704DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
5705DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
5706DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5707DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
5708DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
5709DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.
5710DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
5711DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
5712DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
5713DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
5714DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0
5715DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
5716DLGLOBAL DEBUG 10 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig
5717DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0
5718DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.
5719DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
5720DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0
5721DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
5722DLGLOBAL DEBUG 10 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig
5723DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
5724DLGLOBAL DEBUG test(_branch0){alive}: No more children
5725DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0
5726DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
5727DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.
5728DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
5729DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5730DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
5731DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
5732DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
5733DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.
5734DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
5735DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
5736DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5737DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch
5738DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5739DLGLOBAL DEBUG 10 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branc
5740DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
5741DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
5742DLGLOBAL DEBUG 9 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch
5743DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.
5744DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
5745DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5746DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
5747DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
5748DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5749DLGLOBAL DEBUG 8 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5750DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5751DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
5752DLGLOBAL DEBUG 7 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5753DLGLOBAL DEBUG 6 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive(),other.cleanup())
5754DLGLOBAL DEBUG test(other){alive}: cleanup() done
5755DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup(),other.alive())
5756DLGLOBAL DEBUG test(other){alive}: Freeing instance
5757DLGLOBAL DEBUG test(other){alive}: Deallocated
5758DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup())
5759DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5760DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup())
5761DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5762DLGLOBAL DEBUG 6 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup(),root.child_gone())
5763DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
5764DLGLOBAL DEBUG test(root){alive}: No more children
5765DLGLOBAL DEBUG 5 (__twig1a.alive(),__twig1a.cleanup(),2*root.alive(),_branch1.cleanup())
5766DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
5767DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),_branch1.cleanup())
5768DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
5769DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),root.alive())
5770DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
5771DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
5772DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),root.alive(),root.cleanup())
5773DLGLOBAL DEBUG test(root){alive}: cleanup()
5774DLGLOBAL DEBUG test(root){alive}: scene forgets root
5775DLGLOBAL DEBUG test(root){alive}: cleanup() done
5776DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),root.alive())
5777DLGLOBAL DEBUG test(root){alive}: Freeing instance
5778DLGLOBAL DEBUG test(root){alive}: Deallocated
5779DLGLOBAL DEBUG 2 (__twig1a.alive(),__twig1a.cleanup())
5780DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5781DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),_branch1.alive())
5782DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5783DLGLOBAL DEBUG 4 (__twig1a.alive(),__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
5784DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
5785DLGLOBAL DEBUG test(_branch1){alive}: No more children
5786DLGLOBAL DEBUG 3 (__twig1a.alive(),__twig1a.cleanup(),_branch1.alive())
5787DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
5788DLGLOBAL DEBUG 2 (__twig1a.alive(),__twig1a.cleanup())
5789DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
5790DLGLOBAL DEBUG 1 (__twig1a.alive())
5791DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
5792DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
5793DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5794DLGLOBAL DEBUG 2 (__twig1a.alive(),_branch1.alive())
5795DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5796DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
5797DLGLOBAL DEBUG 1 (__twig1a.alive())
5798DLGLOBAL DEBUG 0 (-)
5799DLGLOBAL DEBUG --- after destroy-event cascade:
5800DLGLOBAL DEBUG --- all deallocated.
5801*** loop_ctx contains 33 blocks, deallocating.
5802DLGLOBAL DEBUG scene_alloc()
5803DLGLOBAL DEBUG test(root){alive}: Allocated
5804DLGLOBAL DEBUG test(root){alive}: Allocated
5805DLGLOBAL DEBUG test(root){alive}: is child of test(root)
5806DLGLOBAL DEBUG test(_branch0){alive}: Allocated
5807DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
5808DLGLOBAL DEBUG test(_branch0){alive}: Allocated
5809DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
5810DLGLOBAL DEBUG test(root){alive}: Allocated
5811DLGLOBAL DEBUG test(root){alive}: is child of test(root)
5812DLGLOBAL DEBUG test(_branch1){alive}: Allocated
5813DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
5814DLGLOBAL DEBUG test(_branch1){alive}: Allocated
5815DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
5816DLGLOBAL DEBUG test(other){alive}: Allocated
5817DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
5818DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
5819DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
5820DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
5821DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
5822DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
5823DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
5824DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
5825DLGLOBAL DEBUG ------ before term cascade, got:
5826DLGLOBAL DEBUG root
5827DLGLOBAL DEBUG _branch0
5828DLGLOBAL DEBUG __twig0a
5829DLGLOBAL DEBUG __twig0b
5830DLGLOBAL DEBUG _branch1
5831DLGLOBAL DEBUG __twig1a
5832DLGLOBAL DEBUG __twig1b
5833DLGLOBAL DEBUG other
5834DLGLOBAL DEBUG ---
5835DLGLOBAL DEBUG --- term at __twig1b
5836DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5837DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
5838DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
5839DLGLOBAL DEBUG 1 (__twig1b.cleanup())
5840DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
5841DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
5842DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5843DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
5844DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5845DLGLOBAL DEBUG 3 (__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
5846DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
5847DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
5848DLGLOBAL DEBUG 2 (__twig1b.cleanup(),_branch1.alive())
5849DLGLOBAL DEBUG 1 (__twig1b.cleanup())
5850DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
5851DLGLOBAL DEBUG 0 (-)
5852DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
5853DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
5854DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5855DLGLOBAL DEBUG 1 (_branch1.alive())
5856DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5857DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
5858DLGLOBAL DEBUG 0 (-)
5859DLGLOBAL DEBUG --- after term cascade:
5860DLGLOBAL DEBUG root
5861DLGLOBAL DEBUG _branch0
5862DLGLOBAL DEBUG __twig0a
5863DLGLOBAL DEBUG __twig0b
5864DLGLOBAL DEBUG _branch1
5865DLGLOBAL DEBUG __twig1a
5866DLGLOBAL DEBUG other
5867DLGLOBAL DEBUG --- 7 objects remain. cleaning up
5868*** loop_ctx contains 5 blocks, deallocating.
5869DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
5870DLGLOBAL DEBUG test(root){alive}: pre_term()
5871DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5872DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
5873DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5874DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
5875DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
5876DLGLOBAL DEBUG 1 (__twig1a.cleanup())
5877DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
5878DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
5879DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
5880DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
5881DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
5882DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
5883DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
5884DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
5885DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
5886DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
5887DLGLOBAL DEBUG 1 (__twig1a.cleanup())
5888DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
5889DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
5890DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
5891DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
5892DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
5893DLGLOBAL DEBUG test(_branch1){alive}: No more children
5894DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
5895DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
5896DLGLOBAL DEBUG 1 (__twig1a.cleanup())
5897DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
5898DLGLOBAL DEBUG 0 (-)
5899DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
5900DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
5901DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
5902DLGLOBAL DEBUG 1 (_branch1.cleanup())
5903DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
5904DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
5905DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
5906DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
5907DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
5908DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
5909DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
5910DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
5911DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
5912DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5913DLGLOBAL DEBUG test(other){alive}: pre_term()
5914DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
5915DLGLOBAL DEBUG test(other){alive}: cleanup()
5916DLGLOBAL DEBUG test(other){alive}: scene forgets other
5917DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
5918DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
5919DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5920DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
5921DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
5922DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
5923DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5924DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
5925DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
5926DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5927DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
5928DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
5929DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
5930DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
5931DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
5932DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
5933DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
5934DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
5935DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
5936DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
5937DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
5938DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
5939DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
5940DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
5941DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5942DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
5943DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
5944DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
5945DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
5946DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
5947DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5948DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
5949DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
5950DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
5951DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
5952DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5953DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
5954DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
5955DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5956DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5957DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
5958DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
5959DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
5960DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
5961DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
5962DLGLOBAL DEBUG test(_branch0){alive}: No more children
5963DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
5964DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
5965DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
5966DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
5967DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5968DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
5969DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
5970DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
5971DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
5972DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
5973DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
5974DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5975DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
5976DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5977DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
5978DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
5979DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
5980DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
5981DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
5982DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
5983DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5984DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
5985DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
5986DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5987DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
5988DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
5989DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
5990DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
5991DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
5992DLGLOBAL DEBUG test(other){alive}: cleanup() done
5993DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
5994DLGLOBAL DEBUG test(other){alive}: Freeing instance
5995DLGLOBAL DEBUG test(other){alive}: Deallocated
5996DLGLOBAL DEBUG 1 (_branch1.cleanup())
5997DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
5998DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
5999DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6000DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
6001DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
6002DLGLOBAL DEBUG test(root){alive}: No more children
6003DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
6004DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
6005DLGLOBAL DEBUG 1 (_branch1.cleanup())
6006DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
6007DLGLOBAL DEBUG 0 (-)
6008DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
6009DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
6010DLGLOBAL DEBUG 1 (root.cleanup())
6011DLGLOBAL DEBUG test(root){alive}: cleanup()
6012DLGLOBAL DEBUG test(root){alive}: scene forgets root
6013DLGLOBAL DEBUG test(root){alive}: cleanup() done
6014DLGLOBAL DEBUG 0 (-)
6015DLGLOBAL DEBUG test(root){alive}: Freeing instance
6016DLGLOBAL DEBUG test(root){alive}: Deallocated
6017DLGLOBAL DEBUG scene_alloc()
6018DLGLOBAL DEBUG test(root){alive}: Allocated
6019DLGLOBAL DEBUG test(root){alive}: Allocated
6020DLGLOBAL DEBUG test(root){alive}: is child of test(root)
6021DLGLOBAL DEBUG test(_branch0){alive}: Allocated
6022DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
6023DLGLOBAL DEBUG test(_branch0){alive}: Allocated
6024DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
6025DLGLOBAL DEBUG test(root){alive}: Allocated
6026DLGLOBAL DEBUG test(root){alive}: is child of test(root)
6027DLGLOBAL DEBUG test(_branch1){alive}: Allocated
6028DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
6029DLGLOBAL DEBUG test(_branch1){alive}: Allocated
6030DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
6031DLGLOBAL DEBUG test(other){alive}: Allocated
6032DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
6033DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
6034DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
6035DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
6036DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
6037DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
6038DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
6039DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
6040DLGLOBAL DEBUG ------ before destroy-event cascade, got:
6041DLGLOBAL DEBUG root
6042DLGLOBAL DEBUG _branch0
6043DLGLOBAL DEBUG __twig0a
6044DLGLOBAL DEBUG __twig0b
6045DLGLOBAL DEBUG _branch1
6046DLGLOBAL DEBUG __twig1a
6047DLGLOBAL DEBUG __twig1b
6048DLGLOBAL DEBUG other
6049DLGLOBAL DEBUG ---
6050DLGLOBAL DEBUG --- destroy-event at __twig1b
6051DLGLOBAL DEBUG test(__twig1b){alive}: Received Event EV_DESTROY
6052DLGLOBAL DEBUG 1 (__twig1b.alive())
6053DLGLOBAL DEBUG test(__twig1b){alive}: alive(EV_DESTROY)
6054DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6055DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
6056DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
6057DLGLOBAL DEBUG 2 (__twig1b.alive(),__twig1b.cleanup())
6058DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
6059DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
6060DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
6061DLGLOBAL DEBUG 3 (__twig1b.alive(),__twig1b.cleanup(),_branch1.alive())
6062DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
6063DLGLOBAL DEBUG 4 (__twig1b.alive(),__twig1b.cleanup(),_branch1.alive(),_branch1.child_gone())
6064DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
6065DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
6066DLGLOBAL DEBUG 3 (__twig1b.alive(),__twig1b.cleanup(),_branch1.alive())
6067DLGLOBAL DEBUG 2 (__twig1b.alive(),__twig1b.cleanup())
6068DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
6069DLGLOBAL DEBUG 1 (__twig1b.alive())
6070DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
6071DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
6072DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
6073DLGLOBAL DEBUG 2 (__twig1b.alive(),_branch1.alive())
6074DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
6075DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
6076DLGLOBAL DEBUG 1 (__twig1b.alive())
6077DLGLOBAL DEBUG 0 (-)
6078DLGLOBAL DEBUG --- after destroy-event cascade:
6079DLGLOBAL DEBUG root
6080DLGLOBAL DEBUG _branch0
6081DLGLOBAL DEBUG __twig0a
6082DLGLOBAL DEBUG __twig0b
6083DLGLOBAL DEBUG _branch1
6084DLGLOBAL DEBUG __twig1a
6085DLGLOBAL DEBUG other
6086DLGLOBAL DEBUG --- 7 objects remain. cleaning up
6087*** loop_ctx contains 5 blocks, deallocating.
6088DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_ERROR)
6089DLGLOBAL DEBUG test(root){alive}: pre_term()
6090DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6091DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
6092DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6093DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
6094DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
6095DLGLOBAL DEBUG 1 (__twig1a.cleanup())
6096DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
6097DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
6098DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
6099DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
6100DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
6101DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
6102DLGLOBAL DEBUG 3 (__twig1a.cleanup(),root.alive(),root.other_gone())
6103DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
6104DLGLOBAL DEBUG 2 (__twig1a.cleanup(),root.alive())
6105DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
6106DLGLOBAL DEBUG 1 (__twig1a.cleanup())
6107DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
6108DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
6109DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
6110DLGLOBAL DEBUG 3 (__twig1a.cleanup(),_branch1.alive(),_branch1.child_gone())
6111DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
6112DLGLOBAL DEBUG test(_branch1){alive}: No more children
6113DLGLOBAL DEBUG 2 (__twig1a.cleanup(),_branch1.alive())
6114DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
6115DLGLOBAL DEBUG 1 (__twig1a.cleanup())
6116DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
6117DLGLOBAL DEBUG 0 (-)
6118DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
6119DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
6120DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
6121DLGLOBAL DEBUG 1 (_branch1.cleanup())
6122DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
6123DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
6124DLGLOBAL DEBUG test(_branch1){alive}: removing reference _branch1.other[0] -> other
6125DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
6126DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
6127DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
6128DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.other_gone())
6129DLGLOBAL DEBUG test(other){alive}: EV_OTHER_GONE: Dropped reference other.other[1] = _branch1
6130DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
6131DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6132DLGLOBAL DEBUG test(other){alive}: pre_term()
6133DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
6134DLGLOBAL DEBUG test(other){alive}: cleanup()
6135DLGLOBAL DEBUG test(other){alive}: scene forgets other
6136DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
6137DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
6138DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
6139DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
6140DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
6141DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
6142DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
6143DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6144DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
6145DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6146DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
6147DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
6148DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
6149DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
6150DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
6151DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
6152DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
6153DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
6154DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
6155DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
6156DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
6157DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
6158DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
6159DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
6160DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
6161DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
6162DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
6163DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6164DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
6165DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
6166DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6167DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
6168DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
6169DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
6170DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
6171DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6172DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
6173DLGLOBAL DEBUG 7 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
6174DLGLOBAL DEBUG 6 (_branch1.cleanup(),2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6175DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6176DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
6177DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
6178DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
6179DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
6180DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
6181DLGLOBAL DEBUG test(_branch0){alive}: No more children
6182DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
6183DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
6184DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6185DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
6186DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
6187DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
6188DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
6189DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
6190DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
6191DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
6192DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
6193DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6194DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
6195DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6196DLGLOBAL DEBUG 7 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
6197DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
6198DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
6199DLGLOBAL DEBUG 6 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
6200DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
6201DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
6202DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
6203DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
6204DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
6205DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6206DLGLOBAL DEBUG 5 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive(),root.alive())
6207DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6208DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
6209DLGLOBAL DEBUG 4 (_branch1.cleanup(),other.alive(),other.cleanup(),_branch0.alive())
6210DLGLOBAL DEBUG 3 (_branch1.cleanup(),other.alive(),other.cleanup())
6211DLGLOBAL DEBUG test(other){alive}: cleanup() done
6212DLGLOBAL DEBUG 2 (_branch1.cleanup(),other.alive())
6213DLGLOBAL DEBUG test(other){alive}: Freeing instance
6214DLGLOBAL DEBUG test(other){alive}: Deallocated
6215DLGLOBAL DEBUG 1 (_branch1.cleanup())
6216DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6217DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
6218DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6219DLGLOBAL DEBUG 3 (_branch1.cleanup(),root.alive(),root.child_gone())
6220DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
6221DLGLOBAL DEBUG test(root){alive}: No more children
6222DLGLOBAL DEBUG 2 (_branch1.cleanup(),root.alive())
6223DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
6224DLGLOBAL DEBUG 1 (_branch1.cleanup())
6225DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
6226DLGLOBAL DEBUG 0 (-)
6227DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
6228DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
6229DLGLOBAL DEBUG 1 (root.cleanup())
6230DLGLOBAL DEBUG test(root){alive}: cleanup()
6231DLGLOBAL DEBUG test(root){alive}: scene forgets root
6232DLGLOBAL DEBUG test(root){alive}: cleanup() done
6233DLGLOBAL DEBUG 0 (-)
6234DLGLOBAL DEBUG test(root){alive}: Freeing instance
6235DLGLOBAL DEBUG test(root){alive}: Deallocated
6236DLGLOBAL DEBUG scene_alloc()
6237DLGLOBAL DEBUG test(root){alive}: Allocated
6238DLGLOBAL DEBUG test(root){alive}: Allocated
6239DLGLOBAL DEBUG test(root){alive}: is child of test(root)
6240DLGLOBAL DEBUG test(_branch0){alive}: Allocated
6241DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
6242DLGLOBAL DEBUG test(_branch0){alive}: Allocated
6243DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
6244DLGLOBAL DEBUG test(root){alive}: Allocated
6245DLGLOBAL DEBUG test(root){alive}: is child of test(root)
6246DLGLOBAL DEBUG test(_branch1){alive}: Allocated
6247DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
6248DLGLOBAL DEBUG test(_branch1){alive}: Allocated
6249DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
6250DLGLOBAL DEBUG test(other){alive}: Allocated
6251DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
6252DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
6253DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
6254DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
6255DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
6256DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
6257DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
6258DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
6259DLGLOBAL DEBUG ------ before term cascade, got:
6260DLGLOBAL DEBUG root
6261DLGLOBAL DEBUG _branch0
6262DLGLOBAL DEBUG __twig0a
6263DLGLOBAL DEBUG __twig0b
6264DLGLOBAL DEBUG _branch1
6265DLGLOBAL DEBUG __twig1a
6266DLGLOBAL DEBUG __twig1b
6267DLGLOBAL DEBUG other
6268DLGLOBAL DEBUG ---
6269DLGLOBAL DEBUG --- term at other
6270DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6271DLGLOBAL DEBUG test(other){alive}: pre_term()
6272DLGLOBAL DEBUG 1 (other.cleanup())
6273DLGLOBAL DEBUG test(other){alive}: cleanup()
6274DLGLOBAL DEBUG test(other){alive}: scene forgets other
6275DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
6276DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
6277DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
6278DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
6279DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),_branch0.other_gone())
6280DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
6281DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
6282DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6283DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
6284DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6285DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
6286DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
6287DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),__twig0b.cleanup())
6288DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
6289DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
6290DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
6291DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
6292DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
6293DLGLOBAL DEBUG 5 (other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
6294DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
6295DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
6296DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
6297DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),__twig0b.cleanup())
6298DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
6299DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
6300DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
6301DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
6302DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6303DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
6304DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
6305DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6306DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
6307DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
6308DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
6309DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
6310DLGLOBAL DEBUG 4 (other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.alive())
6311DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
6312DLGLOBAL DEBUG 5 (other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.alive(),other.other_gone())
6313DLGLOBAL DEBUG 4 (other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.alive())
6314DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6315DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
6316DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
6317DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
6318DLGLOBAL DEBUG 5 (other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
6319DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
6320DLGLOBAL DEBUG test(_branch0){alive}: No more children
6321DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
6322DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
6323DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6324DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
6325DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
6326DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
6327DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
6328DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
6329DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),_branch0.cleanup())
6330DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
6331DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
6332DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6333DLGLOBAL DEBUG 4 (other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
6334DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6335DLGLOBAL DEBUG 5 (other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
6336DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
6337DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
6338DLGLOBAL DEBUG 4 (other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
6339DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),_branch0.cleanup())
6340DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
6341DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
6342DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
6343DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
6344DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6345DLGLOBAL DEBUG 3 (other.cleanup(),_branch0.alive(),root.alive())
6346DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6347DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
6348DLGLOBAL DEBUG 2 (other.cleanup(),_branch0.alive())
6349DLGLOBAL DEBUG 1 (other.cleanup())
6350DLGLOBAL DEBUG test(other){alive}: removing reference other.other[1] -> _branch1
6351DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_OTHER_GONE
6352DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
6353DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_OTHER_GONE)
6354DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),_branch1.other_gone())
6355DLGLOBAL DEBUG test(_branch1){alive}: EV_OTHER_GONE: Dropped reference _branch1.other[0] = other
6356DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
6357DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6358DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
6359DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6360DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
6361DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
6362DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),__twig1b.cleanup())
6363DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
6364DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
6365DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
6366DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
6367DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
6368DLGLOBAL DEBUG 5 (other.cleanup(),2*_branch1.alive(),__twig1b.cleanup(),_branch1.child_gone())
6369DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
6370DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
6371DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
6372DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),__twig1b.cleanup())
6373DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
6374DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
6375DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
6376DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
6377DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6378DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
6379DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
6380DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),__twig1a.cleanup())
6381DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
6382DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
6383DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
6384DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
6385DLGLOBAL DEBUG 4 (other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
6386DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
6387DLGLOBAL DEBUG 5 (other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.other_gone())
6388DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
6389DLGLOBAL DEBUG 4 (other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
6390DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6391DLGLOBAL DEBUG test(root){alive}: pre_term()
6392DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
6393DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
6394DLGLOBAL DEBUG 5 (other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.cleanup())
6395DLGLOBAL DEBUG test(root){alive}: cleanup()
6396DLGLOBAL DEBUG test(root){alive}: scene forgets root
6397DLGLOBAL DEBUG test(root){alive}: cleanup() done
6398DLGLOBAL DEBUG 4 (other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
6399DLGLOBAL DEBUG test(root){alive}: Freeing instance
6400DLGLOBAL DEBUG test(root){alive}: Deallocated
6401DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),__twig1a.cleanup())
6402DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
6403DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
6404DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
6405DLGLOBAL DEBUG 5 (other.cleanup(),2*_branch1.alive(),__twig1a.cleanup(),_branch1.child_gone())
6406DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
6407DLGLOBAL DEBUG test(_branch1){alive}: No more children
6408DLGLOBAL DEBUG 4 (other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
6409DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
6410DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),__twig1a.cleanup())
6411DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
6412DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
6413DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
6414DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
6415DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
6416DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),_branch1.cleanup())
6417DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
6418DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
6419DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6420DLGLOBAL DEBUG 4 (other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
6421DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6422DLGLOBAL DEBUG 5 (other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive(),root.child_gone())
6423DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
6424DLGLOBAL DEBUG test(root){alive}: No more children
6425DLGLOBAL DEBUG 4 (other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
6426DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
6427DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),_branch1.cleanup())
6428DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
6429DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
6430DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
6431DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
6432DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6433DLGLOBAL DEBUG 3 (other.cleanup(),_branch1.alive(),root.alive())
6434DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6435DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
6436DLGLOBAL DEBUG 2 (other.cleanup(),_branch1.alive())
6437DLGLOBAL DEBUG 1 (other.cleanup())
6438DLGLOBAL DEBUG test(other){alive}: cleanup() done
6439DLGLOBAL DEBUG 0 (-)
6440DLGLOBAL DEBUG test(other){alive}: Freeing instance
6441DLGLOBAL DEBUG test(other){alive}: Deallocated
6442DLGLOBAL DEBUG --- after term cascade:
6443DLGLOBAL DEBUG --- all deallocated.
6444*** loop_ctx contains 33 blocks, deallocating.
6445DLGLOBAL DEBUG scene_alloc()
6446DLGLOBAL DEBUG test(root){alive}: Allocated
6447DLGLOBAL DEBUG test(root){alive}: Allocated
6448DLGLOBAL DEBUG test(root){alive}: is child of test(root)
6449DLGLOBAL DEBUG test(_branch0){alive}: Allocated
6450DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
6451DLGLOBAL DEBUG test(_branch0){alive}: Allocated
6452DLGLOBAL DEBUG test(_branch0){alive}: is child of test(_branch0)
6453DLGLOBAL DEBUG test(root){alive}: Allocated
6454DLGLOBAL DEBUG test(root){alive}: is child of test(root)
6455DLGLOBAL DEBUG test(_branch1){alive}: Allocated
6456DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
6457DLGLOBAL DEBUG test(_branch1){alive}: Allocated
6458DLGLOBAL DEBUG test(_branch1){alive}: is child of test(_branch1)
6459DLGLOBAL DEBUG test(other){alive}: Allocated
6460DLGLOBAL DEBUG test(_branch0){alive}: _branch0.other[0] = other
6461DLGLOBAL DEBUG test(other){alive}: other.other[0] = _branch0
6462DLGLOBAL DEBUG test(__twig0a){alive}: __twig0a.other[0] = other
6463DLGLOBAL DEBUG test(other){alive}: other.other[1] = __twig0a
6464DLGLOBAL DEBUG test(_branch1){alive}: _branch1.other[0] = other
6465DLGLOBAL DEBUG test(other){alive}: other.other[1] = _branch1
6466DLGLOBAL DEBUG test(__twig1a){alive}: __twig1a.other[0] = root
6467DLGLOBAL DEBUG test(root){alive}: root.other[0] = __twig1a
6468DLGLOBAL DEBUG ------ before destroy-event cascade, got:
6469DLGLOBAL DEBUG root
6470DLGLOBAL DEBUG _branch0
6471DLGLOBAL DEBUG __twig0a
6472DLGLOBAL DEBUG __twig0b
6473DLGLOBAL DEBUG _branch1
6474DLGLOBAL DEBUG __twig1a
6475DLGLOBAL DEBUG __twig1b
6476DLGLOBAL DEBUG other
6477DLGLOBAL DEBUG ---
6478DLGLOBAL DEBUG --- destroy-event at other
6479DLGLOBAL DEBUG test(other){alive}: Received Event EV_DESTROY
6480DLGLOBAL DEBUG 1 (other.alive())
6481DLGLOBAL DEBUG test(other){alive}: alive(EV_DESTROY)
6482DLGLOBAL DEBUG test(other){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6483DLGLOBAL DEBUG test(other){alive}: pre_term()
6484DLGLOBAL DEBUG 2 (other.alive(),other.cleanup())
6485DLGLOBAL DEBUG test(other){alive}: cleanup()
6486DLGLOBAL DEBUG test(other){alive}: scene forgets other
6487DLGLOBAL DEBUG test(other){alive}: removing reference other.other[0] -> _branch0
6488DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_OTHER_GONE
6489DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
6490DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_OTHER_GONE)
6491DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.other_gone())
6492DLGLOBAL DEBUG test(_branch0){alive}: EV_OTHER_GONE: Dropped reference _branch0.other[0] = other
6493DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
6494DLGLOBAL DEBUG test(_branch0){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6495DLGLOBAL DEBUG test(_branch0){alive}: pre_term()
6496DLGLOBAL DEBUG test(__twig0b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6497DLGLOBAL DEBUG test(__twig0b){alive}: pre_term()
6498DLGLOBAL DEBUG test(__twig0b){alive}: Removing from parent test(_branch0)
6499DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
6500DLGLOBAL DEBUG test(__twig0b){alive}: cleanup()
6501DLGLOBAL DEBUG test(__twig0b){alive}: scene forgets __twig0b
6502DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
6503DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
6504DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
6505DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup(),_branch0.child_gone())
6506DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[1] = __twig0b
6507DLGLOBAL DEBUG test(_branch0){alive}: still exists: child[0]
6508DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0b.cleanup())
6509DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),__twig0b.cleanup())
6510DLGLOBAL DEBUG test(__twig0b){alive}: cleanup() done
6511DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
6512DLGLOBAL DEBUG test(__twig0b){alive}: Freeing instance
6513DLGLOBAL DEBUG test(__twig0b){alive}: Deallocated
6514DLGLOBAL DEBUG test(__twig0a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6515DLGLOBAL DEBUG test(__twig0a){alive}: pre_term()
6516DLGLOBAL DEBUG test(__twig0a){alive}: Removing from parent test(_branch0)
6517DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6518DLGLOBAL DEBUG test(__twig0a){alive}: cleanup()
6519DLGLOBAL DEBUG test(__twig0a){alive}: scene forgets __twig0a
6520DLGLOBAL DEBUG test(__twig0a){alive}: removing reference __twig0a.other[0] -> other
6521DLGLOBAL DEBUG test(other){alive}: Received Event EV_OTHER_GONE
6522DLGLOBAL DEBUG 5 (2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6523DLGLOBAL DEBUG test(other){alive}: alive(EV_OTHER_GONE)
6524DLGLOBAL DEBUG 6 (2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup(),other.other_gone())
6525DLGLOBAL DEBUG 5 (2*other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6526DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6527DLGLOBAL DEBUG test(_branch0){alive}: Received Event EV_CHILD_GONE
6528DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
6529DLGLOBAL DEBUG test(_branch0){alive}: alive(EV_CHILD_GONE)
6530DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup(),_branch0.child_gone())
6531DLGLOBAL DEBUG test(_branch0){alive}: EV_CHILD_GONE: Dropped reference _branch0.child[0] = __twig0a
6532DLGLOBAL DEBUG test(_branch0){alive}: No more children
6533DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch0.alive(),__twig0a.cleanup())
6534DLGLOBAL DEBUG test(_branch0){alive}: Ignoring trigger to terminate: already terminating
6535DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),__twig0a.cleanup())
6536DLGLOBAL DEBUG test(__twig0a){alive}: cleanup() done
6537DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
6538DLGLOBAL DEBUG test(__twig0a){alive}: Freeing instance
6539DLGLOBAL DEBUG test(__twig0a){alive}: Deallocated
6540DLGLOBAL DEBUG test(_branch0){alive}: Removing from parent test(root)
6541DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
6542DLGLOBAL DEBUG test(_branch0){alive}: cleanup()
6543DLGLOBAL DEBUG test(_branch0){alive}: scene forgets _branch0
6544DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6545DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
6546DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6547DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive(),root.child_gone())
6548DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[0] = _branch0
6549DLGLOBAL DEBUG test(root){alive}: still exists: child[1]
6550DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup(),root.alive())
6551DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),_branch0.cleanup())
6552DLGLOBAL DEBUG test(_branch0){alive}: cleanup() done
6553DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
6554DLGLOBAL DEBUG test(_branch0){alive}: Freeing instance
6555DLGLOBAL DEBUG test(_branch0){alive}: Deallocated
6556DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6557DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch0.alive(),root.alive())
6558DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6559DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
6560DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch0.alive())
6561DLGLOBAL DEBUG 2 (other.alive(),other.cleanup())
6562DLGLOBAL DEBUG test(other){alive}: removing reference other.other[1] -> _branch1
6563DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_OTHER_GONE
6564DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
6565DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_OTHER_GONE)
6566DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.other_gone())
6567DLGLOBAL DEBUG test(_branch1){alive}: EV_OTHER_GONE: Dropped reference _branch1.other[0] = other
6568DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
6569DLGLOBAL DEBUG test(_branch1){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6570DLGLOBAL DEBUG test(_branch1){alive}: pre_term()
6571DLGLOBAL DEBUG test(__twig1b){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6572DLGLOBAL DEBUG test(__twig1b){alive}: pre_term()
6573DLGLOBAL DEBUG test(__twig1b){alive}: Removing from parent test(_branch1)
6574DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
6575DLGLOBAL DEBUG test(__twig1b){alive}: cleanup()
6576DLGLOBAL DEBUG test(__twig1b){alive}: scene forgets __twig1b
6577DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
6578DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
6579DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
6580DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup(),_branch1.child_gone())
6581DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[1] = __twig1b
6582DLGLOBAL DEBUG test(_branch1){alive}: still exists: child[0]
6583DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1b.cleanup())
6584DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),__twig1b.cleanup())
6585DLGLOBAL DEBUG test(__twig1b){alive}: cleanup() done
6586DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
6587DLGLOBAL DEBUG test(__twig1b){alive}: Freeing instance
6588DLGLOBAL DEBUG test(__twig1b){alive}: Deallocated
6589DLGLOBAL DEBUG test(__twig1a){alive}: Terminating (cause = OSMO_FSM_TERM_PARENT)
6590DLGLOBAL DEBUG test(__twig1a){alive}: pre_term()
6591DLGLOBAL DEBUG test(__twig1a){alive}: Removing from parent test(_branch1)
6592DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
6593DLGLOBAL DEBUG test(__twig1a){alive}: cleanup()
6594DLGLOBAL DEBUG test(__twig1a){alive}: scene forgets __twig1a
6595DLGLOBAL DEBUG test(__twig1a){alive}: removing reference __twig1a.other[0] -> root
6596DLGLOBAL DEBUG test(root){alive}: Received Event EV_OTHER_GONE
6597DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
6598DLGLOBAL DEBUG test(root){alive}: alive(EV_OTHER_GONE)
6599DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.other_gone())
6600DLGLOBAL DEBUG test(root){alive}: EV_OTHER_GONE: Dropped reference root.other[0] = __twig1a
6601DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
6602DLGLOBAL DEBUG test(root){alive}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
6603DLGLOBAL DEBUG test(root){alive}: pre_term()
6604DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
6605DLGLOBAL ERROR test(root){alive}: Internal error while terminating child FSMs: a child FSM is stuck
6606DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive(),root.cleanup())
6607DLGLOBAL DEBUG test(root){alive}: cleanup()
6608DLGLOBAL DEBUG test(root){alive}: scene forgets root
6609DLGLOBAL DEBUG test(root){alive}: cleanup() done
6610DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup(),root.alive())
6611DLGLOBAL DEBUG test(root){alive}: Freeing instance
6612DLGLOBAL DEBUG test(root){alive}: Deallocated
6613DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
6614DLGLOBAL DEBUG test(_branch1){alive}: Received Event EV_CHILD_GONE
6615DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
6616DLGLOBAL DEBUG test(_branch1){alive}: alive(EV_CHILD_GONE)
6617DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup(),_branch1.child_gone())
6618DLGLOBAL DEBUG test(_branch1){alive}: EV_CHILD_GONE: Dropped reference _branch1.child[0] = __twig1a
6619DLGLOBAL DEBUG test(_branch1){alive}: No more children
6620DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),2*_branch1.alive(),__twig1a.cleanup())
6621DLGLOBAL DEBUG test(_branch1){alive}: Ignoring trigger to terminate: already terminating
6622DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),__twig1a.cleanup())
6623DLGLOBAL DEBUG test(__twig1a){alive}: cleanup() done
6624DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
6625DLGLOBAL DEBUG test(__twig1a){alive}: Freeing instance
6626DLGLOBAL DEBUG test(__twig1a){alive}: Deallocated
6627DLGLOBAL DEBUG test(_branch1){alive}: Removing from parent test(root)
6628DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
6629DLGLOBAL DEBUG test(_branch1){alive}: cleanup()
6630DLGLOBAL DEBUG test(_branch1){alive}: scene forgets _branch1
6631DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6632DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
6633DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6634DLGLOBAL DEBUG 6 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive(),root.child_gone())
6635DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE: Dropped reference root.child[1] = _branch1
6636DLGLOBAL DEBUG test(root){alive}: No more children
6637DLGLOBAL DEBUG 5 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup(),root.alive())
6638DLGLOBAL DEBUG test(root){alive}: Ignoring trigger to terminate: already terminating
6639DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),_branch1.cleanup())
6640DLGLOBAL DEBUG test(_branch1){alive}: cleanup() done
6641DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
6642DLGLOBAL DEBUG test(_branch1){alive}: Freeing instance
6643DLGLOBAL DEBUG test(_branch1){alive}: Deallocated
6644DLGLOBAL DEBUG test(root){alive}: Received Event EV_CHILD_GONE
6645DLGLOBAL DEBUG 4 (other.alive(),other.cleanup(),_branch1.alive(),root.alive())
6646DLGLOBAL DEBUG test(root){alive}: alive(EV_CHILD_GONE)
6647DLGLOBAL DEBUG test(root){alive}: EV_CHILD_GONE with NULL data, must be a parent_term event. Ignore.
6648DLGLOBAL DEBUG 3 (other.alive(),other.cleanup(),_branch1.alive())
6649DLGLOBAL DEBUG 2 (other.alive(),other.cleanup())
6650DLGLOBAL DEBUG test(other){alive}: cleanup() done
6651DLGLOBAL DEBUG 1 (other.alive())
6652DLGLOBAL DEBUG test(other){alive}: Freeing instance
6653DLGLOBAL DEBUG test(other){alive}: Deallocated
6654DLGLOBAL DEBUG 0 (-)
6655DLGLOBAL DEBUG --- after destroy-event cascade:
6656DLGLOBAL DEBUG --- all deallocated.
6657*** loop_ctx contains 33 blocks, deallocating.
6658
6659
6660test_osmo_fsm_set_dealloc_ctx() done