On 1/25/12 11:41 AM, Brian Geffon wrote:
Hi everyone,
I was hoping someone might have an idea on this. So EventProcessor relies on
two #defines when it's constructed namely MAX_EVENT_THREADS and
MAX_THREADS_IN_EACH_TYPE (see I_EventProcessor.h), as of now they are both set
to 512. Unfortunately, if you wanted to use ATS to listen on a large number of
ports (500+) this becomes a problem if you're using accept threads.
So I wanted to remove these #defines and potentially make them configurable as
part of my fix for the arbitrary limit on the number of ports you can listen on…
This is a fairly "common" problem. I've seen (and used) two solutions:
1) Manually read records.config ... Yes, we do that in a few places, which
is why those configs must be in records.config always, or the server will
break. There's some ~10 or so configs like this. FUGLY!
2) Less flexible, but less ugly, is to make these things ./configure'able. I
did that for example for the max number of entries that librecords can hold.
As you can imagine, I can't use the librecords APIs to get that setting,
since, ehm, it's not available. And I really didn't like the idea of doing
#1 above.
My vote would be to make this default "fairly high", and make it easily
overridable via configure.ac.
-- leif