// Start all queries in the background.
CreateObjectRunnable[] runnables = new CreateObjectRunnable[objects.length];
for (int i = 0; i < runnables.length; i++) {
incompletedObjectsList.add(objects[i]);
BytesProgressWatcher progressMonitor = new BytesProgressWatcher(objects[i].getContentLength());
runnables[i] = new CreateObjectRunnable(bucket, objects[i], progressMonitor);
progressWatchers.add(progressMonitor);
}
// Wait for threads to finish, or be cancelled.