On 6/21/06, Vlad Seryakov <[EMAIL PROTECTED]> wrote:
> We talked about this before. If I remember correctly, you didn't
> disagree with me that the commands were racy, you said you code base
> was large and you didn't have time to figure out what you really
> needed.
> More and more unnecessary code is being added. Things are getting out
> of control. However, you'll notice that I did not just remove
> everything. With the new -force switch to ns_cache_eval, _set, _get,
> and _info can be trivially emulated in a couple of lines of Tcl, if
> you want that kind of racy behaviour.
> Everything is of course still available via the C api, and I'd
> recommend taking a look at what your real requirements are and
> building accordingly. If it can be generalised, we can get it into
> the core.
>
> The timeout in the aolserver implementation refers to just the time
> waiting for a conn thread. I'm going to extend that to mean total
> time allowed for the conn to run.
>
> To get this working, Ns_Conn structs need to be allocated in driver.c,
> not queue.c as they are now. driver.c is looking a little scary...
>
By reading this i got an impression that i should expect in the future
one day that CVS HEAD is completely re-written, all parts that you think
are
unnecessary or not correspond to your requirements are removed. And this
can happen even without warning. Looks like you have big plans for all
parts already. You should have asked us before removing parts that are
in the source for several months already.
I would suggest for all of us to define how we do development and
respect each others rights and ability to extend server.
Adding without restraint is also a problem. It gets to the point
where you code yourself to a stand still. For example, there are some
long standing bugs in the driver code which have been looked at and
are still failing tests. Essentially, they are unfixable.
Here's a recent example:
The routine Ns_SockTimeWait was changed so that if NULL is passed as
the timeout, it just polls. All the other calls in the server which
take a timeout parameter, NULL mean infinite wait, not no wait.
If you look at the context in which this is used, SockTimedWait is
used to ask the question "is this socket writeable?". There is no
wait, for any amount of time. It makes the code very hard to read,
especially in combination with similar changes.
.