equal
deleted
inserted
replaced
333 if (!_satb_mark_queue_set.is_active()) return; |
333 if (!_satb_mark_queue_set.is_active()) return; |
334 |
334 |
335 // Filter marked objects before hitting the SATB queues. The same predicate would |
335 // Filter marked objects before hitting the SATB queues. The same predicate would |
336 // be used by SATBMQ::filter to eliminate already marked objects downstream, but |
336 // be used by SATBMQ::filter to eliminate already marked objects downstream, but |
337 // filtering here helps to avoid wasteful SATB queueing work to begin with. |
337 // filtering here helps to avoid wasteful SATB queueing work to begin with. |
338 if (!_heap->requires_marking(obj)) return; |
338 if (!_heap->requires_marking<false>(obj)) return; |
339 |
339 |
340 Thread* thr = Thread::current(); |
340 Thread* thr = Thread::current(); |
341 if (thr->is_Java_thread()) { |
341 if (thr->is_Java_thread()) { |
342 ShenandoahThreadLocalData::satb_mark_queue(thr).enqueue(obj); |
342 ShenandoahThreadLocalData::satb_mark_queue(thr).enqueue(obj); |
343 } else { |
343 } else { |