apple / apple/servicetalk

Consider splitting `IoExecutor` and `Executor` from `GlobalExecutionContext`

Open
#133 1 comment 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
1k
Forks
229
Avg merge
23h 23m
Merged PRs (30d)
16

Description

We pick individual components from `GlobalExecutionContext` when users decide to override part of the `ExecutionContext` from client/server builders. Since `GlobalExecutionContext` is a singleton, it will create the `IoExecutor` and `Executor` even if they are not used.

For cases where none of the client/server uses the global `IoExecutor` or `Executor`, we may resources unnecessarily.

Related discussion:

https://github.com/servicetalk/servicetalk/pull/128#discussion_r225439299

Contributor guide

Open the contributing guide

Research direction

Start by reading GlobalExecutionContext and its uses in the client/server builders, then review the related discussion in pull request 128. Determine how IoExecutor and Executor can be separated so unused resources are not created; done means the proposed split works for builders that override either component.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
networking
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.