public static ISynchronizationPoint < NoException > getClassLoadingSP ( String name ) { synchronized ( classLoadingSP ) { Pair < Thread , JoinPoint < NoException > > p = classLoadingSP . get ( name ) ; if ( p == null ) { JoinPoint < NoException > jp = new JoinPoint < NoException > ( ) ; jp . addToJoin ( 1 ) ; jp . start ( ) ; classLoadingSP . put ( name , new Pair < Thread , JoinPoint < NoException > > ( Thread . currentThread ( ) , jp ) ) ; return null ; } if ( p . getValue1 ( ) == Thread . currentThread ( ) ) { p . getValue2 ( ) . addToJoin ( 1 ) ; return null ; } return p . getValue2 ( ) ; } }
Get the synchronized object for loading the given class .