On 20/06/2008, Quintin Beukes <[EMAIL PROTECTED]> wrote: > Hey, > > Yes. I am however synchronizing. I basically made my own connection > manager. Then using synchronization to ensure that only one thread > gets a reference to a connection. When it does it calls the my > connection objec'ts setActive(true). Other threads would do something > like "getActive() == false". > > My only explanation is that I'm not synchronizing properly somewhere. >
You may already have allowed for this: both writes and reads of shared variables need to be synch (or the variables could be made volatile), otherwise the reader thread may not see what the writer has written. > Q > > > On Thu, Jun 19, 2008 at 11:44 PM, Oleg Kalnichevski <[EMAIL PROTECTED]> > wrote: > > Quintin Beukes wrote: > >> > >> I'm not sure why accessing it from different threads would cause this > >> to happen? Could you explain this please. > >> > > > > Quintin > > > > I am only guessing here. All I am saying HTTP connection objects are not > > threading safe. The only method one can safely can from a different thread > > is #shutdown. > > > > I would certainly help if you managed to reproduce the problem with a test > > case. > > > > Cheers > > > > Oleg > > > > > >> It is definitely a concurrency issue. I am still narrowing them all down. > >> > >> thanks, > >> Q > >> > >> On Thu, Jun 19, 2008 at 12:02 AM, Oleg Kalnichevski <[EMAIL PROTECTED]> > >> wrote: > >>> > >>> On Wed, 2008-06-18 at 22:58 +0200, Quintin Beukes wrote: > >>>> > >>>> Hey, > >>>> > >>>> Is it possible for this method (DefaultHttpClientConnection.isOpen()) > >>>> to return "true" when the socket is closed. > >>>> > >>> If you are not accessing the same connection instance from multiple > >>> threads, I do not see how this could happen. > >>> > >>> Please note only HttpConnection#shutdown method is expected to be > >>> threading safe. > >>> > >>> This sounds like a concurrency issue to me > >>> > >>> Oleg > >>> > >>>> I have a case where netstat doesn't return ANY open connections to the > >>>> target server, but isOpen returns true. > >>>> > >>>> It's not very easy to reproduce my problem, but I've been able to do > >>>> it whenever needed by using high concurrency. I'm not sure if isOpen() > >>>> ever returns true when there is no socket when it seems like my > >>>> problem isn't there. I've only checked when my problem is occurring, > >>>> and this seems very odd. > >>>> > >>>> Thanks > >>> > >>> --------------------------------------------------------------------- > >>> 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] > > > > > > > > > -- > > Quintin Beukes > > > --------------------------------------------------------------------- > 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]
