equal
deleted
inserted
replaced
204 public: |
204 public: |
205 // GC interface. |
205 // GC interface. |
206 |
206 |
207 // The "claim" is typically used to check if oops_do needs to be applied on |
207 // The "claim" is typically used to check if oops_do needs to be applied on |
208 // the CLD or not. Most GCs only perform strong marking during the marking phase. |
208 // the CLD or not. Most GCs only perform strong marking during the marking phase. |
209 enum { |
209 enum Claim { |
210 _claim_none = 0, |
210 _claim_none = 0, |
211 _claim_finalizable = 2, |
211 _claim_finalizable = 2, |
212 _claim_strong = 3 |
212 _claim_strong = 3, |
|
213 _claim_other = 4 |
213 }; |
214 }; |
214 void clear_claim() { _claim = 0; } |
215 void clear_claim() { _claim = 0; } |
|
216 void clear_claim(int claim); |
215 bool claimed() const { return _claim != 0; } |
217 bool claimed() const { return _claim != 0; } |
|
218 bool claimed(int claim) const { return (_claim & claim) == claim; } |
216 bool try_claim(int claim); |
219 bool try_claim(int claim); |
217 int get_claim() const { return _claim; } |
|
218 void set_claim(int claim) { _claim = claim; } |
|
219 |
220 |
220 // Computes if the CLD is alive or not. This is safe to call in concurrent |
221 // Computes if the CLD is alive or not. This is safe to call in concurrent |
221 // contexts. |
222 // contexts. |
222 bool is_alive() const; |
223 bool is_alive() const; |
223 |
224 |