hotspot/src/share/vm/runtime/thread.inline.hpp
changeset 24351 61b33cc6d3cf
parent 22827 07d991d45a51
child 25351 7c198a690050
equal deleted inserted replaced
24350:8d8c1012dacd 24351:61b33cc6d3cf
    44 # include "thread_bsd.inline.hpp"
    44 # include "thread_bsd.inline.hpp"
    45 #endif
    45 #endif
    46 
    46 
    47 #undef SHARE_VM_RUNTIME_THREAD_INLINE_HPP_SCOPE
    47 #undef SHARE_VM_RUNTIME_THREAD_INLINE_HPP_SCOPE
    48 
    48 
       
    49 inline jlong Thread::cooked_allocated_bytes() {
       
    50   jlong allocated_bytes = OrderAccess::load_acquire(&_allocated_bytes);
       
    51   if (UseTLAB) {
       
    52     size_t used_bytes = tlab().used_bytes();
       
    53     if ((ssize_t)used_bytes > 0) {
       
    54       // More-or-less valid tlab. The load_acquire above should ensure
       
    55       // that the result of the add is <= the instantaneous value.
       
    56       return allocated_bytes + used_bytes;
       
    57     }
       
    58   }
       
    59   return allocated_bytes;
       
    60 }
       
    61 
       
    62 #ifdef PPC64
       
    63 inline JavaThreadState JavaThread::thread_state() const    {
       
    64   return (JavaThreadState) OrderAccess::load_acquire((volatile jint*)&_thread_state);
       
    65 }
       
    66 
       
    67 inline void JavaThread::set_thread_state(JavaThreadState s) {
       
    68   OrderAccess::release_store((volatile jint*)&_thread_state, (jint)s);
       
    69 }
       
    70 #endif
       
    71 
       
    72 inline void JavaThread::set_done_attaching_via_jni() {
       
    73   _jni_attach_state = _attached_via_jni;
       
    74   OrderAccess::fence();
       
    75 }
       
    76 
    49 #endif // SHARE_VM_RUNTIME_THREAD_INLINE_HPP
    77 #endif // SHARE_VM_RUNTIME_THREAD_INLINE_HPP