< prev index next >

src/hotspot/share/oops/stackChunkOop.hpp

Print this page
*** 56,10 ***
--- 56,12 ---
    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:

*** 89,10 ***
--- 91,16 ---
    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>

*** 124,10 ***
--- 132,17 ---
    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;

*** 144,10 ***
--- 159,15 ---
    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 >