ok,
and can you give some more details on the blocking code.
I assume :
     ...check to see if data pipe still full
> >     ...timeout if we've waited too long
> >
> >     notifyAll();
> >     try {
> >         wait(1000);
> >         Thread.yield();
> >     } catch (InterruptedException ex) {
> >         throw new java.io.InterruptedIOException();
> >     }

is performed repeatedly in a while lus?
What's the notifyAll doing there by the way?
And is this code being executed in a synchronized block?

grtz
Hans

At 09:01 19/03/2004 -0500, you wrote:
> is the thread mentioned in 2b the same as the one that handled 2a ?

Yep, same thread.

----------------------------------------------
Christian Cryder
Internet Architect, ATMReports.com
Project Chair, BarracudaMVC - http://barracudamvc.org
----------------------------------------------
"Coffee? I could quit anytime, just not today"


> -----Original Message----- > From: Hans [mailto:[EMAIL PROTECTED] > Sent: Friday, March 19, 2004 8:21 AM > To: Tomcat Users List > Subject: Re: thread deadlock problem > > > hi, > is the thread mentioned in 2b the same as the one that handled 2a ? > > grtz > Hans > > At 07:55 19/03/2004 -0500, you wrote: > >Hi folks, > > > >I need to know if someone can explain the following behavior: > > > >1. client browser issues a request > >2. tomcat servlet code starts handling the request... > > a. writes an html redirect to the resp, flushes the buffer, etc > > b. thread continues processing (writing to a data structure) > >3. client browser receives 2a response and generates another request... > > a. reads data out of the data structure populated by 2b > > > >What's happening is that 2b fills up the structure and then > blocks, waiting > >until 3a reads some of the data out, so that it can continue. > The blocking > >code looks like this: > > > > ...check to see if data pipe still full > > ...timeout if we've waited too long > > > > notifyAll(); > > try { > > wait(1000); > > Thread.yield(); > > } catch (InterruptedException ex) { > > throw new java.io.InterruptedIOException(); > > } > > > >Now what is happening is that in certain situations, the request for 3a > >never gets accepted by the server until 2b times out. I'm trying to > >understand why (and what to do about it). I have verified that the client > >not only receives the response from 2a, but it actually issues > the request > >for 3a. Nevertheless, once Tomcat is in this blocking code > (above) it does > >not seem to accept requests from this particular browser window, > -UNTIL- 2b > >times out. > > > >Can anyone explain this to me? Should I be blocking/yielding in > some other > >fashion? Why won't Tomcat accept my subsequent requests when I'm in this > >blocking code? > > > >What I'm looking for more than just "that's a stupid thing to do" - I'm > >hoping someone can either > > > >a) explain the nitty-gritty of how tomcat handles writing the > code back to > >the browser (and telling the browser that everything is complete) in the > >case where the thread may actually need to continue running for a longer > >period of time -or- > > > >b) offer some constructive suggestions as to where I should > start looking in > >the tomcat code to answer those questions myself > > > >Any suggestions would be greatly appreciated... > > > >tia, > >Christian > >---------------------------------------------- > >Christian Cryder > >Internet Architect, ATMReports.com > >Project Chair, BarracudaMVC - http://barracudamvc.org > >---------------------------------------------- > >"Coffee? I could quit anytime, just not today" > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] >


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to