diff options
author | Fadi Hanna <fadim@microsoft.com> | 2016-10-19 02:39:06 +0300 |
---|---|---|
committer | Fadi Hanna <fadim@microsoft.com> | 2016-10-19 02:39:06 +0300 |
commit | dd535f433564a5734bc6c931a4c7a8bb834987d2 (patch) | |
tree | 5d572860134ce7975e8400a202b31d396037e787 /src/Native/Runtime/portable.cpp | |
parent | 135400013170daf61928f1028a6e2250a208670f (diff) |
Refactoring for the ThunkPool APIs:
1) Removing the ThunkPool APIs from the System.Private.Corelib layer and moving it to mrt100_app.dll. Reasons:
a) A more correct layering
b) Thunks are also used by mrt100_app, and today it has to call into the S.P.Corelib layer to get thunks
c) The binder (which today takes care of laying out the thunks section) is going away with the ProjectX work, so the refactoring is needed
2) Addition of a new API: CreateThunksHeap. Thunks are allocated and deallocated from heaps, and each caller can create and managed their own heaps (TODO: heap deallocation feature)
Note: The use of a simple heap removes the need for a the hashtable that we previously had in the old implementation, and simplifies the implementation a bit.
4) Optimization (use of simple thunks linked list with better perf characteristics)
5) Added ThunkPool APIs into the internal RuntimeAugments assembly, to enable writing of tests that directly target the thunks APIs
6) Tests for the feature (including a multithreaded test).
Tested on all 3 architectures.
[tfs-changeset: 1634032]
Diffstat (limited to 'src/Native/Runtime/portable.cpp')
-rw-r--r-- | src/Native/Runtime/portable.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/Native/Runtime/portable.cpp b/src/Native/Runtime/portable.cpp index fd7a24c0c..71a6f40ee 100644 --- a/src/Native/Runtime/portable.cpp +++ b/src/Native/Runtime/portable.cpp @@ -329,7 +329,7 @@ COOP_PINVOKE_HELPER(Int32, RhpLockCmpXchg32, (Int32 * location, Int32 value, Int return PalInterlockedCompareExchange(location, value, comparand); } -COOP_PINVOKE_HELPER(Int64, RhpLockCmpXchg64, (Int64 * location, Int64 value, Int32 comparand)) +COOP_PINVOKE_HELPER(Int64, RhpLockCmpXchg64, (Int64 * location, Int64 value, Int64 comparand)) { // @TODO: USE_PORTABLE_HELPERS - Null check return PalInterlockedCompareExchange64(location, value, comparand); |