You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,6 +39,12 @@ androidx.startup was introduced in beta.5 but is problematic for unit tests and
39
39
40
40
You can see Wasm in action at https://wasm.confetti-app.dev/
41
41
42
+
## Threading changes
43
+
44
+
In a effort to minimize the number of thread switches, the whole request is now run in the same dispatcher. See [Threading.md](https://github.com/apollographql/apollo-kotlin/blob/39d76630277476004bbaed0e3a897feb5a959084/design-docs/Threading.md) for more details.
45
+
46
+
## Contributors 💙
47
+
42
48
Many thanks to @joreilly, @ychescale9 and @japhib for their contributions to this release 💙!
Copy file name to clipboardExpand all lines: design-docs/Threading.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ Most of the above steps need to happen in a background thread as they are potent
16
16
17
17
## Mutable, shared state that requires synchronization
18
18
19
-
Some state in the pipeline is shared require synchronisation:
19
+
Some state in the pipeline is shared and requires synchronisation:
20
20
21
21
* Normalized cache
22
22
* Store listeners
@@ -37,3 +37,9 @@ that would mean that we pay the context switching price in all cases and also th
37
37
nothing so a coroutine is way more efficient there.
38
38
39
39
**On the JVM**, there are less restrictions. OkHttp has as synchronous API that [has proven to be quite efficient](https://github.com/grpc/grpc-java/issues/6696)/
40
+
41
+
## Current state
42
+
43
+
The dispatcher is changed very early in the chain. On the JVM, everything runs synchronously from that dispatcher.
44
+
45
+
The only thing happening before the dispatcher change is notification of the ApolloIdlingResources that need to happen from the same call stack. ApolloIdlingResource is deprecated and that should be removed when ApolloIdlingResource goes away.
0 commit comments