Thursday, March 15, 2012, 9:26:33 AM, you wrote:

> [The lock] is only de-allocated after the close() by which time all
> references to that NetVC should have been dropped by the client.

Yes, I understand. What I do not understand is what actual, specific, 
implementation mechanism I can use to make sure "all references to that NetVC 
should have been dropped by the client". Re-iterating that point over and over 
does not provide the mechanism needed to implement it.

> Each transaction should have one (1) lock.  When holding that lock all
> pointers held by that transaction should be accessible.

As I have pointed out, that is not the case in the current implementation with 
regard to HttpServerSession being split across threads. How can I change the 
code to implement that design goal?

In my example timeline, derived from the current codebase, when thread A holds 
the lock it can't access the HttpServerSession pointer and when thread B holds 
the lock it can't access the pointer in the NetHandler. What is your proposal 
to change this to be compliance with your design specification?

Is the transaction lock distinct from the NetVC lock? Could you, with reference 
to the stack trace diagram I sent earlier, point out the transaction lock?

> Only the
> transaction has the power to close() the NetVC.  Before doing so the
> transaction must drop all references to the NetVC.

For my example timeline / scenario, what should thread A and thread B do to 
implement this? 
 
> The  lock does need to
> be reference counted, because all threads which might call the transaction
> hold a pointer to the lock and an Action (lock + cancel boolean) and take
> the lock and then check the "cancel" flag before calling the transaction.

For HttpServerSession, where is this transaction lock? I also don't see where 
it keeps an Action. Is there an access mechanism or member I have missed?

> Reference counting the NetVC is a bandaid for an undiscovered bug.

What should I tell my client who is experiencing these crashes on deployed ATS 
servers? No bandaid for you because ATS has been rock solid since 1997? What 
can I tell him about your plan for making progress on this issue?

Reply via email to