Commit 65cab55 1 parent 19219a9 commit 65cab55 Copy full SHA for 65cab55
File tree 1 file changed +8
-0
lines changed
1 file changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -643,13 +643,15 @@ class ZMarkConcurrentRootsIteratorClosure : public ZRootsIteratorClosure {
643
643
644
644
class ZMarkConcurrentRootsTask : public ZTask {
645
645
private:
646
+ ZMark* const _mark;
646
647
SuspendibleThreadSetJoiner _sts_joiner;
647
648
ZConcurrentRootsIteratorClaimStrong _roots;
648
649
ZMarkConcurrentRootsIteratorClosure _cl;
649
650
650
651
public:
651
652
ZMarkConcurrentRootsTask (ZMark* mark) :
652
653
ZTask (" ZMarkConcurrentRootsTask" ),
654
+ _mark (mark),
653
655
_sts_joiner (),
654
656
_roots (),
655
657
_cl () {
@@ -662,6 +664,12 @@ class ZMarkConcurrentRootsTask : public ZTask {
662
664
663
665
virtual void work () {
664
666
_roots.oops_do (&_cl);
667
+
668
+ // Flush and free worker stacks. Needed here since
669
+ // the set of workers executing during root scanning
670
+ // can be different from the set of workers executing
671
+ // during mark.
672
+ _mark->flush_and_free ();
665
673
}
666
674
};
667
675
You can’t perform that action at this time.
0 commit comments