class Concurrent::IndirectImmediateExecutor

def post(*args, &task)

@!macro executor_service_method_post
def post(*args, &task)
  raise ArgumentError.new("no block given") unless block_given?
  return false unless running?
  event = Concurrent::Event.new
  @internal_executor.post do
    begin
      task.call(*args)
    ensure
      event.set
    end
  end
  event.wait
  true
end