In threads.c ,I find the code below <br>
int thread_pool_addrequest(REQUEST *request, RAD_REQUEST_FUNP fun)<br>
{<br>
    /*<br>
     *    Add the new request to the queue.<br>
     */<br>
    if (!request_enqueue(request, fun)) return 0;<br>
<br>
    /*<br>
     *    If the thread pool is busy handling requests, then<br>
     *    try to spawn another one.<br>
     */<br>
    if (thread_pool.active_threads == thread_pool.total_threads) {<br>
        if (spawn_thread(request->timestamp) == NULL) {<br>
            radlog(L_INFO,<br>
           
       "The maximum number of threads
(%d) are active, cannot spawn new thread to handle request",<br>
                   thread_pool.max_threads);<br>
            return 1;<br>
        }<br>
    }<br>
<br>
    return 1;<br>
}<br>
<br>
why not restricted the conditions ,and add the if condition to just if
the total threads exceed  the max threads,if so just add to the
thread queue and return ,if not do the spawn thread function to spawn a
new thread .and do this ,it will reduce many functioin calls is this
function,at the same time it will reduce too much time when too many
packets arrived.<br>
<br>
is my idea right?<br>
and also in file threads.c,the if condition     if (thread_pool.total_threads >= thread_pool.max_threads) {<br>
        DEBUG2("Thread spawn
failed.  Maximum number of threads (%d) already running.",
thread_pool.max_threads);<br>
        return NULL;<br>
    }<br>
is useless.<br>
tks in advanced?<br><br><div><span class="gmail_quote">On 12/30/05, <b class="gmail_sendername">Alan DeKok</b> <<a href="mailto:aland@ox.org">aland@ox.org</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Liu dejun <<a href="mailto:dejun.liu@gmail.com">dejun.liu@gmail.com</a>> wrote:<br>> When lots of concurrent auth packets arrived at radius server .by default<br>> ,if radius server exceeds the max packet process thread ,it will discard the
<br>> auth packet/<br>> see the code below in version 1.0.5<br><br>  This is fixed in 1.1.0.  See the 1.1.0-pre0 source for details.<br><br>  Alan DeKok.<br><br>-<br>List info/subscribe/unsubscribe? See <a href="http://www.freeradius.org/list/devel.html">
http://www.freeradius.org/list/devel.html</a><br></blockquote></div><br><br clear="all"><br>-- <br>Yesterday is a history.<br>Tomorrow is a mystery.<br>Today is a gift.<br>That's why we call it "the Present".