We're still seeing this problem. I did a quick diff between 2.4.5 and
2.5c, and only had a question about the new check on line 134 inside
get_line function (in the new code):
if(buf[i] == '\0') {
n_read = i;
continue;
}
What is it suppose to achieve? Why put "continue", as this is the final
statement of the for loop (for(i = n_read; i < bufsize; i++) {)? Also,
the value of the n_read is only important if "i<bufsize", which is the
next if statement right after the loop. I was thinking this was written
to handle the NULL character on a line, but nothing really happens,
except changing the value of n_read.
I can't see how this would cause the problem with pound using up 100% of
CPU. I pretty certain one of the threads is stuck in a loop, and thats
why was looking at this piece specifically.
Dave Steinberg wrote:[...][...][...]
|