< prev index next > src/hotspot/share/oops/stackChunkOop.hpp
Print this page
static const uint8_t FLAG_HAS_INTERPRETED_FRAMES = 1 << 0;
static const uint8_t FLAG_CLAIM_RELATIVIZE = 1 << 1; // Only one thread claims relativization of derived pointers
static const uint8_t FLAG_NOTIFY_RELATIVIZE = 1 << 2; // Someone is waiting for relativization to complete
static const uint8_t FLAG_GC_MODE = 1 << 3; // Once true it and FLAG_HAS_INTERPRETED_FRAMES can't change
static const uint8_t FLAG_HAS_BITMAP = 1 << 4; // Can only be true if FLAG_GC_MODE is true
+ static const uint8_t FLAG_PREEMPTED = 1 << 5; // Continuation was preempted
+ static const uint8_t FLAG_HAS_LOCKSTACK = 1 << 6; // LockStack was copied into stackChunk
bool try_acquire_relativization();
void release_relativization();
public:
inline void release_set_flags(uint8_t value);
inline int max_thawing_size() const;
inline void set_max_thawing_size(int value);
+ inline uint8_t lockStackSize() const;
+ inline void set_lockStackSize(uint8_t value);
+
+ inline ObjectMonitor* objectMonitor() const;
+ inline void set_objectMonitor(ObjectMonitor* monitor);
+
inline oop cont() const;
template<typename P>
inline oop cont() const;
inline void set_cont(oop value);
template<typename P>
inline void clear_flags();
inline bool has_mixed_frames() const;
inline void set_has_mixed_frames(bool value);
+ inline bool is_preempted() const;
+ inline void set_is_preempted(bool value);
+ inline bool preempted_on_monitorenter() const;
+
+ inline bool has_lockStack() const;
+ inline void set_has_lockStack(bool value);
+
inline bool is_gc_mode() const;
inline bool is_gc_mode_acquire() const;
inline void set_gc_mode(bool value);
inline bool has_bitmap() const;
inline void do_barriers(const StackChunkFrameStream<frames>& f, const RegisterMapT* map);
template <typename RegisterMapT>
void fix_thawed_frame(const frame& f, const RegisterMapT* map);
+ void copy_lockstack(oop* start);
+
+ template <typename OopT, class StackChunkLockStackClosureType>
+ inline void iterate_lockstack(StackChunkLockStackClosureType* closure);
+
template <class StackChunkFrameClosureType>
inline void iterate_stack(StackChunkFrameClosureType* closure);
// Derived pointers are relativized, with respect to their oop base.
void relativize_derived_pointers_concurrently();
< prev index next >