private void shutdown(ThreadPoolExecutor executor) {
        executor.shutdown();
        try {
            if ( ! executor.awaitTermination(30, TimeUnit.SECONDS))
                throw new RuntimeException("Rendering thread pool did not shutdown in 30 seconds");
        }
        catch (InterruptedException e) {
            // return
        }
    }
<p>Render this response using the renderer's own threads and return a future indicating whether the rendering
was successful. The data list tree will be traversed asynchronously, and
the pertinent methods will be called as data becomes available.</p>

<p>If rendering fails, the exception causing this will be wrapped in an
ExecutionException and thrown from blocked calls to Future.get()</p>

@return a future indicating whether rendering was successful
container-core/src/main/java/com/yahoo/processing/rendering/AsynchronousSectionedRenderer.java