public BlockingTaskExecutorBuilder taskFunction(
            Function<? super Runnable, ? extends Runnable> taskFunction) {
        this.taskFunction = requireNonNull(taskFunction, "taskFunction");
        return this;
    }
Sets the task function for new threads. Use this method to set additional work before or after
the {@link Runnable} is run. For example:
<pre>{@code
BlockingTaskExecutor.builder("thread-prefix")
                    .taskFunction(task -> {
                        return () -> {
                            // Add something to do before task is run
                            task.run();
                            // Add something to do after task is run
                         };
                    })
                    .build();
}</pre>
core/src/main/java/com/linecorp/armeria/common/util/BlockingTaskExecutorBuilder.java