issue #38bugfix issue #38 enforce same thread #39
+132
−10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#38 incorrectly throwing exception when interacting on same thread.
Appears coroutines appends "@coroutine#n" to the thread name, and this can change when suspending/resuming coroutines. The solution provided in this PR strips the coroutine name from the threadname. A test that fails without stripping the suffix has been added in
ThreadUtilSpec
.Long term, handling of same thread enforcement may change - perhaps wrapping store in channel or actor. For now this should work, however all interactions with the store will need to be from a singleThreadCoroutine context, such as one with
Dispatchers.Main
or for native - https://github.com/reduxkotlin/ReadingListSampleApp/blob/master/common/src/iosMain/kotlin/org/reduxkotlin/readinglist/common/UI.kt@jennymolske