class SelectorProducerProxy implements ExecutionStrategy.Producer {

    private final ExecutionStrategy.Producer producer;

    private final Executor executor;

    public SelectorProducerProxy(ExecutionStrategy.Producer producer, Executor executor) {
        this.producer = producer;
        this.executor = executor;
    }

    @Override
    public Runnable produce() {<FILL_FUNCTION_BODY>}
}

        Runnable task = producer.produce();
        if (Objects.isNull(task)) {
            return null;
        }
        EnhancedRunnable enhancedTask = EnhancedRunnable.of(task, executor);
        AwareManager.execute(executor, enhancedTask);
        return enhancedTask;
    
<no_super_class>