public static void queueColumnLoad(ICubicWorld world,CubeIO loader,int x,int z,Consumer<Column> runnable){
  QueuedColumn key=new QueuedColumn(x,z,world);
  AsyncColumnIOProvider task=columnTasks.get(key);
  if (task == null) {
    task=new AsyncColumnIOProvider(key,loader);
    task.addCallback(runnable);
    columnTasks.put(key,task);
    pool.execute(task);
  }
 else {
    task.addCallback(runnable);
  }
}

public static void queueColumnLoad ( ICubicWorld world , CubeIO loader , int x , int z , Consumer < Column > runnable ) { QueuedColumn key = new QueuedColumn ( x , z , world ) ; AsyncColumnIOProvider task = columnTasks . get ( key ) ; if ( task == null ) { task = new AsyncColumnIOProvider ( key , loader ) ; task . addCallback ( runnable ) ; columnTasks . put ( key , task ) ; pool . execute ( task ) ; } else { task . addCallback ( runnable ) ; } }
queue a column load , running the specified callback when the load has finished
