summaryrefslogtreecommitdiff
path: root/src/gc/gcpriv.h
diff options
context:
space:
mode:
authorSean Gillespie <sean@swgillespie.me>2017-04-14 09:51:10 -0700
committerGitHub <noreply@github.com>2017-04-14 09:51:10 -0700
commit13812bfd0f6eda442c944f416e8c871b18d99e3f (patch)
treed8f51b0fc4208e097fcbc82b3f385ebc8b45ab9a /src/gc/gcpriv.h
parent4c6f23eb3d1ee0e39d6df44ed573f6a0132f71fc (diff)
downloadcoreclr-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.h28
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;