On Sat, 2003-08-30 at 15:20, Giacomo Pati wrote:
> Is someone on the Doug Lea list (if there is any) to report this?

I got an answer from him, he provided me with a slightly edited change:

  protected synchronized void workerDone(Worker w) {
    threads_.remove(w);
    if (--poolSize_ == 0 && shutdown_) { 
      maximumPoolSize_ = minimumPoolSize_ = 0; // disable new threads
      notifyAll(); // notify awaitTerminationAfterShutdown
    }

    if (!shutdown_) { // create a replacement now if needed
      if (poolSize_ < minimumPoolSize_) {
        try {
           Runnable r = (Runnable)(handOff_.poll(0));
           if (r != null)
             addThread(r);
        } catch(InterruptedException ie) {
          return;
        }
      }
    }
  }

I've patched the concurrent 1.3.2 package with this change and put it in
CVS. This change will be part of the next maintenance release of
concurrent (he had this problem fixed already in the JSR-166 version of
that class).

-- 
Bruno Dumon                             http://outerthought.org/
Outerthought - Open Source, Java & XML Competence Support Center
[EMAIL PROTECTED]                          [EMAIL PROTECTED]

Reply via email to