From: Maxim Yegorushkin (e-maxim_at_[hidden])
Date: 2005-04-13 03:27:09
On Tue, 12 Apr 2005 07:41:34 -0700 (PDT), Don G <dongryphon_at_[hidden]>
> I am curious to know what folks think about this approach.
I skimmed through you stuff. It confused me a lot.
What kind of applications is that targeted for?
For a heavy duty high performance server you don't want to use it, because
the abstractions you provide do have a price, and I'm not sure about the
quality of implementation. What you need when doing such a server is to
stick close to the metal, not paying for (I'm pretty sure you know that)
useless context switches, lock contention, memory allocations and data
copies. One really don't care about Linux/Windoze portability for this
kind of servers just because Windoze is not an option for it's poor
network performance and inherent security breaches.
For a simple portable application one would probably stick to BSD
nonblocking sockets + select() or blocking sockets + threads. The
resulting code size will probably close to that of the code using your
stuff, but code transparency and complexity will be in favor of the former
Aside from this, I'm rather skeptical about the library you are working on
guys. IMO, the root of all problems and complexity is its intended
portability. The target platforms' APIs are too different to make
implementation efficient and usable for any kind serious network
application. If M$ does not care about its network APIs portability, why
would anyone else care about it?
-- Maxim Yegorushkin