code: @Override
  	public boolean isProperlyShutDown() {
  		boolean readersShutDown = true;
  		for (ReaderThread rt : readers) {
  			readersShutDown &= rt.getState() == Thread.State.TERMINATED;
  		}
  		
  		boolean writersShutDown = true;
  		for (WriterThread wt : writers) {
  			writersShutDown &= wt.getState() == Thread.State.TERMINATED;
  		}
  		
  		return isShutdown.get() && readersShutDown && writersShutDown && super.isProperlyShutDown();
  	}
docs: Utility method to check whether the IO manager has been properly shut down. The IO manager is considered
  to be properly shut down when it is closed and its threads have ceased operation.
  
  @return True, if the IO manager has properly shut down, false otherwise.