class AsyncImageLoader extends Thread { String filename; String extension; PImage vessel; public AsyncImageLoader(String filename, String extension, PImage vessel) { // Give these threads distinct name so we can check whether we are loading // on the main/background thread; for now they are all named the same super(ASYNC_IMAGE_LOADER_THREAD_PREFIX); this.filename = filename; this.extension = extension; this.vessel = vessel; } @Override public void run() { while (requestImageCount == requestImageMax) { try { Thread.sleep(10); } catch (InterruptedException e) { } } requestImageCount++; PImage actual = loadImage(filename, extension); // An error message should have already printed if (actual == null) { vessel.width = -1; vessel.height = -1;