[jcw-gen] DON'T generate Java Callable Wrappers in parallel #43
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.
Partially reverst commit f0fa3c3.
The problem with f0fa3c3 is that Mono.Cecil follows the normal .NET
guidelines with respect to thread safety: static members are
thread-safe, but instance members are not thread safe.
Meaning accessing e.g.
TypeDefinition.Methods
isn't thread-safe.Attempting to generate Java Callable Wrappers in parallel can result
in "bizarre" Javav code wherein not all Java members which should be
overridden are actually overidden, presumably because the
TypeDefinition of the type, some base type, or some implemented
interface, is being used concurrently from multiple threads.
Revert the Task use from commit f0fa3c3 and generate
Java Callable Wrappers sequentially, so that they're valid.