private static RejectedExecutionHandler newRejectedExecutionHandler(
      BlockingQueue<Runnable> blockingQueue, boolean forFunctionExecution) {

    if (forFunctionExecution) {
      return new FunctionExecutionRejectedExecutionHandler(blockingQueue);
    }

    if (blockingQueue instanceof SynchronousQueue) {
      return new CallerRunsPolicy();
      // return new BlockHandler();
    }

    // create a thread that takes from bufferQueue and puts into result
    return new BufferHandler();
  }
Is the current thread used for executing Functions?
geode-core/src/main/java/org/apache/geode/distributed/internal/FunctionExecutionPooledExecutor.java