code: public void release(Object o)
      {
          synchronized(this)
          {
              usedPool.remove(o);
              freePool.add(o);
              notify();
          }
      }
docs: Release a resource and put it back in the pool of free resources.
  @param o The object to return to the pool