src/share/vm/memory/referenceProcessor.hpp

changeset 3188
d1bdeef3e3e2
parent 3175
4dfb2df418f2
child 3210
bf2d2b8b1726
equal deleted inserted replaced
3187:3f24f946bc2d 3188:d1bdeef3e3e2
199 _ref = _next; 199 _ref = _next;
200 } 200 }
201 assert(_ref != _first_seen, "cyclic ref_list found"); 201 assert(_ref != _first_seen, "cyclic ref_list found");
202 NOT_PRODUCT(_processed++); 202 NOT_PRODUCT(_processed++);
203 } 203 }
204
205 }; 204 };
206 205
207 class ReferenceProcessor : public CHeapObj { 206 class ReferenceProcessor : public CHeapObj {
208 protected: 207 protected:
209 // Compatibility with pre-4965777 JDK's 208 // Compatibility with pre-4965777 JDK's
210 static bool _pending_list_uses_discovered_field; 209 static bool _pending_list_uses_discovered_field;
210
211 // The SoftReference master timestamp clock
212 static jlong _soft_ref_timestamp_clock;
211 213
212 MemRegion _span; // (right-open) interval of heap 214 MemRegion _span; // (right-open) interval of heap
213 // subject to wkref discovery 215 // subject to wkref discovery
214 216
215 bool _discovering_refs; // true when discovery enabled 217 bool _discovering_refs; // true when discovery enabled
454 // get and set span 456 // get and set span
455 MemRegion span() { return _span; } 457 MemRegion span() { return _span; }
456 void set_span(MemRegion span) { _span = span; } 458 void set_span(MemRegion span) { _span = span; }
457 459
458 // start and stop weak ref discovery 460 // start and stop weak ref discovery
459 void enable_discovery(bool verify_disabled, bool check_no_refs) { 461 void enable_discovery(bool verify_disabled, bool check_no_refs);
460 #ifdef ASSERT
461 // Verify that we're not currently discovering refs
462 assert(!verify_disabled || !_discovering_refs, "nested call?");
463
464 if (check_no_refs) {
465 // Verify that the discovered lists are empty
466 verify_no_references_recorded();
467 }
468 #endif // ASSERT
469 _discovering_refs = true;
470 }
471
472 void disable_discovery() { _discovering_refs = false; } 462 void disable_discovery() { _discovering_refs = false; }
473 bool discovery_enabled() { return _discovering_refs; } 463 bool discovery_enabled() { return _discovering_refs; }
474 464
475 // whether discovery is atomic wrt other collectors 465 // whether discovery is atomic wrt other collectors
476 bool discovery_is_atomic() const { return _discovery_is_atomic; } 466 bool discovery_is_atomic() const { return _discovery_is_atomic; }

mercurial