Skip to content

[jcw-gen] DON'T generate Java Callable Wrappers in parallel #43

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 1 commit into from
Jun 1, 2016

Conversation

jonpryor
Copy link
Contributor

@jonpryor jonpryor commented Jun 1, 2016

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.

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.
@atsushieno atsushieno merged commit 4ace37f into dotnet:master Jun 1, 2016
radekdoulik added a commit to radekdoulik/java.interop that referenced this pull request Aug 27, 2018
Changes in xamarin-android-tools between 75530565b6aa903b3a0e52b61df4dd94475a19fc and 9e78d6ee586b498d0ea082b3bc00432c23583dd1:

9e78d6e (HEAD, origin/master, origin/HEAD, master) [tests] fix test failures on Windows (dotnet#47)
bdf0158 Better support no installed JDKs on macOS (dotnet#48)
6353659 Log what is happening during path selection (dotnet#46)
3ef860b Take BUILD_NUMBER into consideration for Version sorting (dotnet#45)
d3de054 Allow an optional locator to be provided to JdkInfo (dotnet#43)
917d3b3 Don't require quotes around `release` values (dotnet#41)
7427692 [tests] Unit tests for finding NDK location based on $PATH (dotnet#40)
dbc517b Merge pull request dotnet#38 from jonpryor/jonp-ndk-via-path
511d580 Allow finding NDK location based on $PATH
b42c217 [tests] Fix DetectAndSetPreferredJavaSdkPathToLatest() test (dotnet#37)
a4aad18 Add AndroidSdkInfo.DetectAndSetPreferredJavaSdkPathToLatest() (dotnet#35)
fae7e0a [tests] Remove temporary directories (dotnet#36)
07c4c2b [Xamarin.Android.Tools.AndroidSdk] Revert JDK validation (dotnet#34)
radekdoulik added a commit that referenced this pull request Aug 27, 2018
Changes in xamarin-android-tools between 75530565b6aa903b3a0e52b61df4dd94475a19fc and 9e78d6ee586b498d0ea082b3bc00432c23583dd1:

9e78d6e (HEAD, origin/master, origin/HEAD, master) [tests] fix test failures on Windows (#47)
bdf0158 Better support no installed JDKs on macOS (#48)
6353659 Log what is happening during path selection (#46)
3ef860b Take BUILD_NUMBER into consideration for Version sorting (#45)
d3de054 Allow an optional locator to be provided to JdkInfo (#43)
917d3b3 Don't require quotes around `release` values (#41)
7427692 [tests] Unit tests for finding NDK location based on $PATH (#40)
dbc517b Merge pull request #38 from jonpryor/jonp-ndk-via-path
511d580 Allow finding NDK location based on $PATH
b42c217 [tests] Fix DetectAndSetPreferredJavaSdkPathToLatest() test (#37)
a4aad18 Add AndroidSdkInfo.DetectAndSetPreferredJavaSdkPathToLatest() (#35)
fae7e0a [tests] Remove temporary directories (#36)
07c4c2b [Xamarin.Android.Tools.AndroidSdk] Revert JDK validation (#34)
@github-actions github-actions bot locked and limited conversation to collaborators Apr 15, 2024
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants