diff options
author | Maoni0 <maonis@microsoft.com> | 2016-06-08 12:22:46 -0700 |
---|---|---|
committer | Maoni0 <maonis@microsoft.com> | 2016-06-08 12:22:46 -0700 |
commit | c09881cd371c143bad7c406f62c34bd4b4f6e635 (patch) | |
tree | 3e015c029f4670c936745f275246b94c3905e125 /src/gc | |
parent | 4ddb9f704404086024d106d9d0cb4098e942bf30 (diff) | |
download | coreclr-c09881cd371c143bad7c406f62c34bd4b4f6e635.tar.gz coreclr-c09881cd371c143bad7c406f62c34bd4b4f6e635.tar.bz2 coreclr-c09881cd371c143bad7c406f62c34bd4b4f6e635.zip |
need to account for server GC threads calling grow
Diffstat (limited to 'src/gc')
-rw-r--r-- | src/gc/gc.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gc/gc.cpp b/src/gc/gc.cpp index 1de3caf807..91d73f04ca 100644 --- a/src/gc/gc.cpp +++ b/src/gc/gc.cpp @@ -7219,7 +7219,9 @@ int gc_heap::grow_brick_card_tables (uint8_t* start, // Suspending here allows copying dirty state from the old table into the new table, and not have to merge old // table info lazily as done for card tables. - BOOL is_runtime_suspended = IsSuspendEEThread(); + // Either this thread was the thread that did the suspension which means we are suspended; or this is called + // from a GC thread which means we are in a blocking GC and also suspended. + BOOL is_runtime_suspended = IsSuspendEEThread() || IsGCSpecialThread(); if (!is_runtime_suspended) { // Note on points where the runtime is suspended anywhere in this function. Upon an attempt to suspend the |