request_list.c:rl_free_entry() bad pthread_kill()?

Frank Cusack fcusack at fcusack.com
Wed May 10 21:09:28 CEST 2006


On May 10, 2006 1:01:59 PM -0400 Alan DeKok <aland at nitros9.org> wrote:
>
>   The CVS head has a "stop now" flag, which causes src/main/modcall.c
> to stop processing the request.  If the blocked module can be
> convinced to return, then the thread should be available for other
> requests.

here's an idea.  set the stop now flag, unlink the entry but don't
free it.  have modcall.c free the entry if the stop now flag is set
when the thread returns from processing.

That way, rl_deinit() (which calls rl_free_entry()) can do its stuff.
However I don't know what impact there will be on rl_deinit() continuing
while a module is processing a request under a previous configuration.
I guess that's up to individual modules to handle failures gracefully.
(eg a module might be reconfigured to use a different passwd file, and
the old one removed while it's processing a request)

I'm assuming rl_deinit() is used for server reload.

-frank



More information about the Freeradius-Devel mailing list