@Override
public void createSecondaryIndexes(TupleIndex primaryIndex ,
TupleIndex[] secondaryIndexes)
{
monitor.print("** Parallel index building") ;
Timer timer = new Timer() ;
timer.startTimer() ;
int semaCount = 0 ;
Semaphore sema = new Semaphore(0) ;
for ( TupleIndex index : secondaryIndexes )
{
if ( index != null )
{
Runnable builder = setup(sema, primaryIndex, index, index.getMapping()) ;
new Thread(builder).start() ;
semaCount++ ;
}
}
try { sema.acquire(semaCount) ; } catch (InterruptedException ex) { ex.printStackTrace(); }
long time = timer.readTimer() ;
timer.endTimer() ;
monitor.print("Time for parallel indexing: %.2fs\n", time/1000.0) ;
}