Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking issue for ServerCallExecutorSupplier API being experimental #8274

Open
YifeiZhuang opened this issue Jun 18, 2021 · 2 comments
Open
Labels
experimental API Issue tracks stabilizing an experimental API
Milestone

Comments

@YifeiZhuang
Copy link
Contributor

YifeiZhuang commented Jun 18, 2021

Allows for defining an executor per-service or per-method. Discussed in #7874.
This does not replace ServerBuilder.execute(), which is a the default executor to run tasks before the point when executorSupplier can be called, or as a fallback executor when executorSupplier returns nothing.

If ServerBuilder.executorSupplier() is provided, ServerBuilder.directExecutor() is automatically disabled.

@YifeiZhuang YifeiZhuang added enhancement experimental API Issue tracks stabilizing an experimental API and removed enhancement labels Jun 18, 2021
@YifeiZhuang YifeiZhuang added this to the Next milestone Jun 19, 2021
@YifeiZhuang YifeiZhuang changed the title Tracking issue for server ExecutorSupplier API being experimental Tracking issue for ServerCallExecutorSupplier API being experimental Jun 19, 2021
@ejona86
Copy link
Member

ejona86 commented Jun 24, 2021

If ServerBuilder.executorSupplier() is provided, ServerBuilder.directExecutor() is automatically disabled.

@YifeiZhuang, is this true? I think directExecutor still functions as would be expected from the user's perspective, we just disable a directExecutor optimization.

@YifeiZhuang
Copy link
Contributor Author

YifeiZhuang commented Jun 24, 2021

If ServerBuilder.executorSupplier() is provided, ServerBuilder.directExecutor() is automatically disabled.

@YifeiZhuang, is this true? I think directExecutor still functions as would be expected from the user's perspective, we just disable a directExecutor optimization.

yup I was wrong. If ServerBuilder.executorSupplier() is provided, ServerBuilder.directExecutor() is still effective, just stream optimization and synchronization optimization are disabled, and only the handleServerCall() will be handled on the supplied executor instead of the running on direct executor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
experimental API Issue tracks stabilizing an experimental API
Projects
None yet
Development

No branches or pull requests

2 participants