Paul Querna wrote:
- C99 Compiler.
Shrug. Everyone's there now.
- High Performance Event System Calls (KQueue, Event Ports, EPoll, I/O Completion Ports).
This is a tricky area. You definitely don't want to tie yourself to a small subset of OSes. The real magic trick, however, would be to come up with an abstraction that can take advantage of these if available, but still be able to fall back to conventional I/O if none of these are available..
- Good Kernel Threading.
"Good"? Or merely "existence"? Older OSes often have some notion of threading support, though these may be implemented in userspace, or NxM, or 1-1, and may or may not be "good" depending on your viewpoint.
Nevertheless, taking advantage of that feature is generally always good, even if the implementation is somewhat suboptimal. I assume any design you create would follow today's Worker MPM design (a few dozen to maybe a hundred worker threads per process, not thousands or tens of thousands) - most threading implementations should be able to handle that.