> > I don't quite understand CYG_HTTPD_SOCKET_IDLE_TIMEOUT > > in detail, but it is hardwired to 300 seconds which appears to be > > rather long for the default maxim # sockets (16). > > The time of 5 minutes before an inactive socket is closed was > chosen without much concern to the maximum number of > sockets. Its intentions were mainly to close sockets that have > been inactive for more than 5 minutes, regardless of the reason: > In other words I felt that with persistent connections (and very > few sockets available to begin with) it is important to reclaim > any and all resource you might think are not actively used. > > The sockets might be dead, or the user of the client might just be > enjoying a sandwich before she comes back surfing: Either way > if the socket is idle for 5 minutes I want to be able to reclaim it for > connections that actually carry some traffic. > > We can make a case for making this a CDL option..
I hate options :-) I guess if it was to be an option I would like to have a minimize # of sockets option. > > Could CYG_HTTPD_SOCKET_IDLE_TIMEOUT be set to 0? > > What would happen? > > I can interpret this question two ways: > > 1) CYG_HTTPD_SOCKET_IDLE_TIMEOUT equal 0 means that > there is no timeout (i.e. remove the call to > cyg_httpd_close_unused_sockets(). In this case the sockets will > be opened forever. You are now at the mercy of the stack to > determine that a socket is dead. Might work, but I have not > experimented with it. Now, your delay is even more hardcoded > (this time inside the stack itself.) > 2) CYG_HTTPD_SOCKET_IDLE_TIMEOUT is active and equal 0 > in which case, with the current code you would effectively resort > to closing each connection after the request was served. In other > words, you void the advantages of persistent connections by > reverting to HTTP 1.0. If you think 16 sockets are not enough > with persistent connections you will hate the alternative, where a > single web page with a lot of pictures can exhaust the number of > sockets. Is there a reason I would not want to minimize the # of sockets used? I guess athttpd would typically be used for some sort of logging/configuration server. Performance is not so much an issue at that point. The minimum # of sockets would then presumably be with CYG_HTTPD_SOCKET_IDLE_TIMEOUT being somewhat near the length of processing a request. 5 seconds seems like a reasonable default at that point... -- Øyvind Harboe http://www.zylin.com - eCos ARM & FPGA developer kit -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
