public boolean waitForLoaderToUnload(String packageName, long millisToWait) {
   long lStart = System.currentTimeMillis();
   while (!_discreteLoaders.isLoaderUnloaded(packageName)) {
     if (System.currentTimeMillis() - lStart > millisToWait) {
       return false;
     }
     System.gc();
     try {
       Thread.sleep(100);
     } catch (InterruptedException e) {
       throw new RuntimeException(e);
     }
   }
   return true;
 }
 SingleServingGosuClassLoader getDiscreteNamespaceLoader(String namespace) {
   return _discreteLoaders.getLoader(namespace);
 }
 @SuppressWarnings("UnusedDeclaration")
 public boolean isLoaderUnloaded(String namespace) {
   return _discreteLoaders.isLoaderUnloaded(namespace);
 }
 boolean hasDiscreteNamespace(String namespace) {
   return _discreteLoaders.getLoader(namespace) != null;
 }