Hi!

Long time no hear...

We are trying to merge some of our local changes to the
current repository... There are some obstacles though...

We use the Win platform among others and must make sure
the code performs on Win's equally well as on Unices. 
We are still not there but we are approaching...

In general:
Most of the windows changes are now cluttered over the 
code in form of ifdef's which is ugly and unsupportable.
Over the time we will try to avoid this by moving all 
the platform-different stuff out and wrapping it in one 
special directory or file (today's nswin32.c). 
This will be a lenghtly process, as there are LOTS of 
places in the code we need to re-visit, but we should do 
that in order to keep the code maintainable.

In partiucular:
One thing is pretty complicated though.... the nsproxy module. 
It spawns external program (proxy) and maintains the 
communication to that program over standard unnamed
(anonymus) pipes. It also utilizes the non-blocking 
operations to the proxy so we can eventually recover 
from runaway proxies. This runs on Unix very good.

On Windows there are some limitations as how you can
do non-blocking operations... In particular, there 
seems to be a problem with non-blocking reads/writes 
on unnamed pipes... They simply do not work on windows,
at least as to our knowledge.

So there we have a problem... If we want to make nsproxy
work on Unix and windows equally well, we must either
  a. use sockets for both platforms
or
  b. use pipes on Unix (as now) and sockets on windows

The b. is what we've implemented so far. It is conceptually 
working well but it is UGLY code cluttered with define's 
all arround. It is also difficult to expand on and to maintain.

The a. is what I am really after. It *may* add certain 
performance penalty (which at this monent I cannot quantify)
but would lead to cleaner and simpler code.
Apropos performance... I have a feeling that we will not have
much troubles in this area. After all, proxy operations are
per-se slow, so adding some more ticks won't change much IMO.

Does anybody have any reasons why we should NOT go after b.?
Or... is there any other option that is worth considering?

Cheers
Zoran

 


------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to