diff options
author | Jan Kotas <jkotas@microsoft.com> | 2015-10-15 07:14:05 -0700 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2015-10-15 08:37:24 -0700 |
commit | 38034a26ff4e40e98d1af32abe5baef2c3eeea52 (patch) | |
tree | 987ede790cce6f2540f0e74ee71da961eb826f7b /src/vm/gcenv.h | |
parent | c826885f85991fbeb1e99930f08ba4c3c4b8f9a8 (diff) | |
download | coreclr-38034a26ff4e40e98d1af32abe5baef2c3eeea52.tar.gz coreclr-38034a26ff4e40e98d1af32abe5baef2c3eeea52.tar.bz2 coreclr-38034a26ff4e40e98d1af32abe5baef2c3eeea52.zip |
Cleanup GC-EE Interface
- Add proper abstractions for threading methods to GCToEEInterface
- Split sample gcenv into multiple files to avoid redundant content
- Add handle table methods needed by .NET Native WinRT implementation
Part of #1550
Diffstat (limited to 'src/vm/gcenv.h')
-rw-r--r-- | src/vm/gcenv.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/vm/gcenv.h b/src/vm/gcenv.h index fc5ca6de86..5816d0259e 100644 --- a/src/vm/gcenv.h +++ b/src/vm/gcenv.h @@ -99,10 +99,38 @@ public: // post-gc callback. static void GcDone(int condemned); + // Promote refcounted handle callback + static bool RefCountedHandleCallbacks(Object * pObject); + // Sync block cache management static void SyncBlockCacheWeakPtrScan(HANDLESCANPROC scanProc, LPARAM lp1, LPARAM lp2); static void SyncBlockCacheDemote(int max_gen); static void SyncBlockCachePromotionsGranted(int max_gen); + + // Thread functions + static bool IsPreemptiveGCDisabled(Thread * pThread) + { + WRAPPER_NO_CONTRACT; + return !!pThread->PreemptiveGCDisabled(); + } + + static void EnablePreemptiveGC(Thread * pThread) + { + WRAPPER_NO_CONTRACT; + pThread->EnablePreemptiveGC(); + } + + static void DisablePreemptiveGC(Thread * pThread) + { + WRAPPER_NO_CONTRACT; + pThread->DisablePreemptiveGC(); + } + + static void SetGCSpecial(Thread * pThread); + static alloc_context * GetAllocContext(Thread * pThread); + static bool CatchAtSafePoint(Thread * pThread); + + static Thread * GetThreadList(Thread * pThread); }; #endif // GCENV_H_
\ No newline at end of file |