public synchronized ResourcePool createPool(ResourcePool.Manager mgr) throws ResourcePoolException { if (liveChildren == null) createThreadResources(); // System.err.println("Created liveChildren: " + liveChildren); ResourcePool child = new BasicResourcePool( mgr, start, min, max, inc, retry_attempts, retry_delay, idle_resource_test_period, max_age, max_idle_time, excess_max_idle_time, destroy_overdue_resc_time, expiration_enforcement_delay, break_on_acquisition_failure, debug_store_checkout_stacktrace, taskRunner, asyncEventQueue, timer, this); liveChildren.add(child); return child; }
synchronized void markBroken(BasicResourcePool pool) { // System.err.println("markBroken -- liveChildren: " + liveChildren); if (liveChildren != null) // keep this method idempotent! { liveChildren.remove(pool); if (liveChildren.isEmpty()) destroyThreadResources(); } // rqUsers.remove( pool ); // if (rqUsers.size() == 0) // { // rqUsers = null; // rq.close(); // rq = null; // } // timerUsers.remove( pool ); // if (timerUsers.size() == 0) // { // timerUsers = null; // timer.cancel(); // timer = null; // } }