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.
Continuing #3774.
First of all, using
PendingJob
is only useful on Python.Endpoint::utilAddPendingJob()
will always execute the pending job directly unlessmainThreadOnly
is set totrue
(the default is false) (and thread count 0).This makes the problem much less complicated since
mainThreadOnly
typically won't be enabled on Java nor C# (and enabling this on Android is definitely a no no due to the main thread being the GUI thread).Therefore, the simplest solution has been provided by @nanangizz in (#3774 (comment)) using
__disown__()
.This turns out to be a classical "elements within a container" problem, where we want the container to own the elements. And just for future reference, in case that we also encounter similar issues for Java and C#, the solutions are readily available in the docs:
For Python, the solution can be found here: