You can also use the IndexReader's incRef/decRef methods. Mike
On Thu, Sep 30, 2010 at 6:12 AM, Uwe Schindler <u...@thetaphi.de> wrote: > Hi Jamie, >> >It's good to cache the reader, but, finalize would worry me too since >>you >> have no control over when GC gets around to calling it... you risk >tying > up >> resources for longer than necessary. >> >> I did it this way, as I didn't want to over complicate the code by > introducing >> mechanisms to track the number of search threads using a shared > indexreader. >> Admittedly, its not a very clean solution but in my case it does work. Is > there a >> particular technique for knowing when to a close a reader when there are >> multiple search threads using that reader? >> Should I keep some kind of counter and override the close method of the >> reader such that the underlying reader is only closed when everyone's done >> with it? > > The easiest would be an AtomicInteger for each cached reader that gets > incremented before you start a search and decremented on finishing search. > You can safely close the reader, when the integer is 0. > > Uwe > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org