-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make DependentHandle public #54246
Make DependentHandle public #54246
Commits on Jun 18, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 57fe91c - Browse repository at this point
Copy the full SHA 57fe91cView commit details -
Configuration menu - View commit details
-
Copy full SHA for b1f54b5 - Browse repository at this point
Copy the full SHA b1f54b5View commit details -
Configuration menu - View commit details
-
Copy full SHA for b331b8f - Browse repository at this point
Copy the full SHA b331b8fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a96fa3f - Browse repository at this point
Copy the full SHA a96fa3fView commit details -
Add allocation checks to DependentHandle APIs
This avoids throwing ExecutionEngineException-s if one of the public APIs is called on a non-allocated DependentHandle instance
Configuration menu - View commit details
-
Copy full SHA for 16fdf0e - Browse repository at this point
Copy the full SHA 16fdf0eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 748d88e - Browse repository at this point
Copy the full SHA 748d88eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 247fa5a - Browse repository at this point
Copy the full SHA 247fa5aView commit details -
Naming improvements to Ephemeron type
The ephemeron type is checked in the Mono runtime in "object.c" as follows: m_class_get_image (klass) == mono_defaults.corlib && !strcmp ("Ephemeron", m_class_get_name (klass)) As such, the namespace it belongs to in the managed runtime doesn't matter: the VM will just check that the type name matches, and that the type is in fact defined in corelib. This means we can just move it to System.Runtime without worrying about it being properly managed in the VM. Additionally, the type is defined in "sgen-mono.c" as follows: typedef struct { GCObject* key; GCObject* value; } Ephemeron; So as long as the layout matches the one of the type defined in C# (which it does), we're also free to rename the fields to better follow the naming guidelines, and the VM will have no issues with it.
Configuration menu - View commit details
-
Copy full SHA for 66d2ac5 - Browse repository at this point
Copy the full SHA 66d2ac5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4067ac3 - Browse repository at this point
Copy the full SHA 4067ac3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1670339 - Browse repository at this point
Copy the full SHA 1670339View commit details -
Add default Dispose test for DependentHandle
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 96cfc91 - Browse repository at this point
Copy the full SHA 96cfc91View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6a8db56 - Browse repository at this point
Copy the full SHA 6a8db56View commit details -
Optimize DependentHandle.nGetPrimary on CoreCLR
Removed internal call, same optimization as GCHandle
Configuration menu - View commit details
-
Copy full SHA for 1601d88 - Browse repository at this point
Copy the full SHA 1601d88View commit details -
Configuration menu - View commit details
-
Copy full SHA for 359938b - Browse repository at this point
Copy the full SHA 359938bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 312851a - Browse repository at this point
Copy the full SHA 312851aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0145a76 - Browse repository at this point
Copy the full SHA 0145a76View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4925877 - Browse repository at this point
Copy the full SHA 4925877View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1664a95 - Browse repository at this point
Copy the full SHA 1664a95View commit details -
Configuration menu - View commit details
-
Copy full SHA for ca515b6 - Browse repository at this point
Copy the full SHA ca515b6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 08df598 - Browse repository at this point
Copy the full SHA 08df598View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e2b624 - Browse repository at this point
Copy the full SHA 4e2b624View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e03297 - Browse repository at this point
Copy the full SHA 4e03297View commit details -
Configuration menu - View commit details
-
Copy full SHA for 25b34c2 - Browse repository at this point
Copy the full SHA 25b34c2View commit details -
Reintroduce DependentHandle.GetTargetAndDependent()
This fixes a bug due to a race condition in ConditionalWeakTable<K, V>, which relies on this method which atomically retrieves both target and dependent with respect to target being set to null concurrently by other threads. This also exposes the same API publically to allow consumers to potentially implement custom conditional weak tables in the same manner.
Configuration menu - View commit details
-
Copy full SHA for 01f32a3 - Browse repository at this point
Copy the full SHA 01f32a3View commit details -
Configuration menu - View commit details
-
Copy full SHA for b3963f2 - Browse repository at this point
Copy the full SHA b3963f2View commit details
Commits on Jun 21, 2021
-
Add DependentHandle.StopTracking() API
This also fixes two potential GC holes when setting DependentHandle.Target (see conversation from dotnet#54246 (comment) onwards)
Configuration menu - View commit details
-
Copy full SHA for 34e1bcb - Browse repository at this point
Copy the full SHA 34e1bcbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9fd1da4 - Browse repository at this point
Copy the full SHA 9fd1da4View commit details -
Remove FCUnique from InternalStopTracking
This was added in dotnet#39810 to avoid a collision with MarshalNative::GCHandleInternalSet, as the two FCalls had identical implementations and their entry points were not unique. This should no longer be needed after 099fc478551f46cc54e7a18a32d9a9ac73727c73, as that changed both the signature and the implementation of this FCall.
Configuration menu - View commit details
-
Copy full SHA for d7146e0 - Browse repository at this point
Copy the full SHA d7146e0View commit details
Commits on Jun 22, 2021
-
Configuration menu - View commit details
-
Copy full SHA for c9c6325 - Browse repository at this point
Copy the full SHA c9c6325View commit details
Commits on Jun 23, 2021
-
Configuration menu - View commit details
-
Copy full SHA for c463d54 - Browse repository at this point
Copy the full SHA c463d54View commit details