Mailing List Archive

[PATCH] isisd threads problems
Attached small patch fixes problems with canceling threads in isisd
described in [quagga-dev 575]. First three parts of patch are really
fixes. About last two ones I don't know.

I'm still not too familiar with quagga threads. What happens if new
thread is added without canceling previous one? In these cases I hit
the situation where circuit->u.bc.t_run_dr[idx] existed and I just
felt uncomfortable about it.

IMHO after thread_cancel(thread); there should be thread=NULL; (like
THREAD_OFF macro does).

Before thread=thread_add_timer(); there should be check if(thread ==
NULL). And if it it isn't and there is need for rechedule thread, old
thread should be canceled before.

It just helps to avoid problems which might be very hard to debug
IMHO.

Or am I missing something?


--
Hasso Tepper
Elion Enterprises Ltd.
WAN administrator