not acked. -- #ken P-)} Ken Coar <http://Golux.Com/coar/> Apache Software Foundation <http://www.apache.org/> "Apache Server for Dummies" <http://Apache-Server.Com/> "Apache Server Unleashed" <http://ApacheUnleashed.Com/> ApacheCon 2001! Four tracks with over 70+ sessions. Free admission to exhibits and special events - keynote presentations by John 'maddog' Hall and David Brin. Special thanks to our Platinum Sponsors IBM and Covalent, Gold Sponsor Thawte, and Silver Sponsor Compaq. Attend the only Apache event designed and fully supported by the members of the ASF. See more information and register at <http://ApacheCon.Com/>!
Hi, I know that you guys are probably working on this right now and maybe Apache is already this way ... I'm not sure. So just in case, this is an idea I thought I'd share (in faith of the open source community). The idea is pretty simple: instead of dedicating one thread for each request, it might be more efficient to use 'undedicated' threads. Any thread can serve any client. While a thread is waiting for a read or write to a socket, for example, it can just jump to serve other incoming requests. Any other thread can take over whenever it's doing nothing. I'm working on this idea at the moment but due to my work load, I haven't come up with anything useful so I can't make any contribution (I'm an old lousy C programmer anyway). The idea appears to be applicable though. Keep up the good work guys. You're #1! :-) Marc K. (from a far country, Indonesia) Well, maybe this stupid little thing ... // One of my old dirty trick to get the month very quickly. // It doesn't care whether or not it's spelled correctly. As long // as the start is unique! int ka_strtomon(const char *s) { char a, b, c; if ((a = ka_lochar_(*s++)) == 0) return -1; if ((b = ka_lochar_(*s++)) == 0) return -1; if ((c = ka_lochar_(*s)) == 0) return -1; switch (a) { case 'j' : return (b == 'a') ? 0 : (c == 'n') ? 5 : 6; case 'f' : return 1; case 'm' : return (c == 'r') ? 2 : 4; case 'a' : return (b == 'p') ? 3 : 7; case 's' : return 8; case 'o' : return 9; case 'n' : return 10; case 'd' : return 11; } return -1; }
