| java.lang.Object org.jboss.mx.loading.LoadMgr3
LoadMgr3 | public class LoadMgr3 (Code) | | A utility class used by the UnifiedClassLoader3 to manage the thread based
class loading tasks.
author: Scott.Stark@jboss.org version: $Revision: 63285 $ |
Inner Class :public static class PkgClassLoader | |
beginLoadTask | public static boolean beginLoadTask(ClassLoadingTask task, UnifiedLoaderRepository3 repository) throws ClassNotFoundException(Code) | | Initiate the class loading task. This is called by UCL3.loadClass to
initiate the process of loading the requested class. This first attempts
to load the class from the repository cache, and then the class loaders
in the repsository. If the package of the class is found in the repository
then one or more ThreadTask are created to complete the ClassLoadingTask.
The ThreadTask are assigned to the threads that own the associated UCL3
monitor. If no class loader serves the class package, then the requesting
class loader is asked if it can load the class.
true if the class could be loaded from the cache or requestingUCL3, false to indicate the calling thread must process thetasks assigned to it until the ClassLoadingTask state is FINISHED exception: ClassNotFoundException - if there is no chance the class canbe loaded from the current repository class loaders. |
endLoadTask | public static void endLoadTask(ClassLoadingTask task)(Code) | | Complete a ClassLoadingTask. This is called by UCL3.loadClass to indicate
that the thread is existing the loadClass method.
|
nextTask | public static void nextTask(Thread t, ClassLoadingTask task, UnifiedLoaderRepository3 repository) throws InterruptedException(Code) | | Called by threads owning a UCL3.loadLock from within UCL3.loadClass to
process ThreadTasks assigned to them. This is the mechanism by which we
avoid deadlock due to a given loadClass request requiring multiple UCLs
to be involved. Any thread active in loadClass with the monitor held
processes class loading tasks that must be handled by its UCL3. The
active set of threads loading classes form a pool of cooperating threads.
|
registerLoaderThread | public static void registerLoaderThread(RepositoryClassLoader ucl, Thread t)(Code) | | Register that a thread owns the UCL3.loadClass monitor. This is called
from within UCL3.loadClass(String,boolean) and this method creates
entries in the loadClassThreads and loadTasksByThread maps.
|
|
|