diff options
author | Sean Gillespie <sean@swgillespie.me> | 2017-04-14 09:51:10 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-14 09:51:10 -0700 |
commit | 13812bfd0f6eda442c944f416e8c871b18d99e3f (patch) | |
tree | d8f51b0fc4208e097fcbc82b3f385ebc8b45ab9a /src/gc/gcpriv.h | |
parent | 4c6f23eb3d1ee0e39d6df44ed573f6a0132f71fc (diff) | |
download | coreclr-13812bfd0f6eda442c944f416e8c871b18d99e3f.tar.gz coreclr-13812bfd0f6eda442c944f416e8c871b18d99e3f.tar.bz2 coreclr-13812bfd0f6eda442c944f416e8c871b18d99e3f.zip |
[Local GC] Move operations on CLREventStatic to the EE interface (#10813)
* [Local GC] Move operations on CLREventStatic to the EE and add their functionality to the interface
* Fix a missed case
* Split GetWaitForGCEvent into two smaller interface methods to avoid exposing the event itself on the interface
* Initial implementation for Unix
* Complete unix implementation
* Make it work on Windows
* Remove redudant methods from GCToEEInterface
* Fix the Linux build
* First part of code review feedback: make GCEvent dispatch statically (Windows)
* Second part of code review feedback: make GCEvent dispatch statically (Unix)
* Standardize implementation across Windows/Unix (apparently MSVC is more lenient about constructor names than clang)
* Address code review feedback: Add Create*Event methods back onto GCEvent and remove them from GCToOSInterface
* Address code review feedback: remove a dead define
* Remove a bad comment, remove an unnecessary friend class, fix some formatting issues
* Fix an issue when initializing a GCEvent on Linux (should not be allocating an Impl in the constructor)
* Fix the same issue on Windows (less bad, just leaks memory instead of asserting)
Diffstat (limited to 'src/gc/gcpriv.h')
-rw-r--r-- | src/gc/gcpriv.h | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/gc/gcpriv.h b/src/gc/gcpriv.h index 108045cd37..a2ec64b614 100644 --- a/src/gc/gcpriv.h +++ b/src/gc/gcpriv.h @@ -197,8 +197,6 @@ void GCLogConfig (const char *fmt, ... ); //Please leave these definitions intact. -#define CLREvent CLREventStatic - // hosted api #ifdef memcpy #undef memcpy @@ -2766,7 +2764,7 @@ public: BOOL dont_restart_ee_p; PER_HEAP_ISOLATED - CLREvent bgc_start_event; + GCEvent bgc_start_event; #endif //BACKGROUND_GC // The variables in this block are known to the DAC and must come first @@ -2833,9 +2831,9 @@ public: PER_HEAP #ifndef MULTIPLE_HEAPS - CLREvent gc_done_event; + GCEvent gc_done_event; #else // MULTIPLE_HEAPS - CLREvent gc_done_event; + GCEvent gc_done_event; #endif // MULTIPLE_HEAPS PER_HEAP @@ -2890,10 +2888,10 @@ public: // notification feature which is only enabled if concurrent // GC is disabled. PER_HEAP_ISOLATED - CLREvent full_gc_approach_event; + GCEvent full_gc_approach_event; PER_HEAP_ISOLATED - CLREvent full_gc_end_event; + GCEvent full_gc_end_event; // Full GC Notification percentages. PER_HEAP_ISOLATED @@ -2913,9 +2911,9 @@ public: PER_HEAP size_t fgn_last_alloc; - static uint32_t user_thread_wait (CLREvent *event, BOOL no_mode_change, int time_out_ms=INFINITE); + static uint32_t user_thread_wait (GCEvent *event, BOOL no_mode_change, int time_out_ms=INFINITE); - static wait_full_gc_status full_gc_wait (CLREvent *event, int time_out_ms); + static wait_full_gc_status full_gc_wait (GCEvent *event, int time_out_ms); PER_HEAP uint8_t* demotion_low; @@ -2943,10 +2941,10 @@ public: bool gc_thread_no_affinitize_p; PER_HEAP_ISOLATED - CLREvent gc_start_event; + GCEvent gc_start_event; PER_HEAP_ISOLATED - CLREvent ee_suspend_event; + GCEvent ee_suspend_event; PER_HEAP heap_segment* new_heap_segment; @@ -3133,7 +3131,7 @@ protected: // we need to create them on the thread that called // SuspendEE which is heap 0. PER_HEAP_ISOLATED - CLREvent bgc_threads_sync_event; + GCEvent bgc_threads_sync_event; PER_HEAP Thread* bgc_thread; @@ -3142,13 +3140,13 @@ protected: CLRCriticalSection bgc_threads_timeout_cs; PER_HEAP_ISOLATED - CLREvent background_gc_done_event; + GCEvent background_gc_done_event; PER_HEAP_ISOLATED - CLREvent ee_proceed_event; + GCEvent ee_proceed_event; PER_HEAP - CLREvent gc_lh_block_event; + GCEvent gc_lh_block_event; PER_HEAP_ISOLATED bool gc_can_use_concurrent; |