< prev index next >

src/hotspot/share/gc/shared/cardTableBarrierSet.cpp

Print this page
*** 112,15 ***
  //     compensating for the missing pre-barrier here. Turning now
  //     to the post-barrier, we note that G1 needs a RS update barrier
  //     which simply enqueues a (sequence of) dirty cards which may
  //     optionally be refined by the concurrent update threads. Note
  //     that this barrier need only be applied to a non-young write,
! //     but, like in CMS, because of the presence of concurrent refinement
! //     (much like CMS' precleaning), must strictly follow the oop-store.
- //     Thus, using the same protocol for maintaining the intended
- //     invariants turns out, serendepitously, to be the same for both
- //     G1 and CMS.
  //
  // For any future collector, this code should be reexamined with
  // that specific collector in mind, and the documentation above suitably
  // extended and updated.
  void CardTableBarrierSet::on_slowpath_allocation_exit(JavaThread* thread, oop new_obj) {
--- 112,12 ---
  //     compensating for the missing pre-barrier here. Turning now
  //     to the post-barrier, we note that G1 needs a RS update barrier
  //     which simply enqueues a (sequence of) dirty cards which may
  //     optionally be refined by the concurrent update threads. Note
  //     that this barrier need only be applied to a non-young write,
! //     but, because of the presence of concurrent refinement,
! //     must strictly follow the oop-store.
  //
  // For any future collector, this code should be reexamined with
  // that specific collector in mind, and the documentation above suitably
  // extended and updated.
  void CardTableBarrierSet::on_slowpath_allocation_exit(JavaThread* thread, oop new_obj) {
< prev index next >