…raps an InterruptedException. An instance of this class is thrown in cases where the driver is sleeping or waiting on a condition, and has to catch InterruptedException and do something besides swallowing it. Since InterruptedException is checked and so can't be thrown from methods that don't declare it, best thing to do it throw a runtime exception that can be handled in the application
…ve to be outside the null check, otherwise it's a race condition and the notification may never be received
…thods that take a write concern if the write concern is null
…wo for pointing it out.
…l class a lot... simpler. 1. Removed support for unlimited pool size. Now there is a single maximum size of the pool, representing the total number of potentially available and in-use members 2. Semaphore now has one permit for each pool member that are potentially available (either in available list or could be created). 3. Synchronized on this. Only enter synchronization block in get method if a permit has been acquired 4. Keeping track of list of available members (_avail) and set of checked out members (_out). Get method removes from _avail or creates new member, and adds to _out. Done method removes from _out and adds to _avail. 5. Removed debug and track leaks support 6. Updated JMX monitoring interface to reflect the new structure.
…d to Mongo instance
…B manual at docs.mongogb.org/manual
…imaryPreferred, so that authentication doesn't fail if connected to a replica set with no primary available
…de more info for batch inserts
… that it can safely be examined via JMX
Clarified in doc that some public classes are not part of the public API Added a few more stats for in use connections: durationMS and threadName
…ion pool mbean
…ration being executed by each in use connection. Did this by by using MXBean instean of MBean