Mercurial > hg > truffle
comparison src/share/vm/runtime/thread.hpp @ 14443:3205e78d8193
8029396: PPC64 (part 212): Several memory ordering fixes in C-code.
Summary: memory ordering fixes in GC and other runtime code showing on PPC64.
Reviewed-by: kvn, coleenp
author | goetz |
---|---|
date | Mon, 02 Dec 2013 10:26:14 +0100 |
parents | 2b8e28fdf503 |
children | 6a6c94b49dab |
comparison
equal
deleted
inserted
replaced
14442:1174c8abbdb6 | 14443:3205e78d8193 |
---|---|
1042 // last_Java_pc | 1042 // last_Java_pc |
1043 | 1043 |
1044 address last_Java_pc(void) { return _anchor.last_Java_pc(); } | 1044 address last_Java_pc(void) { return _anchor.last_Java_pc(); } |
1045 | 1045 |
1046 // Safepoint support | 1046 // Safepoint support |
1047 JavaThreadState thread_state() const { return _thread_state; } | 1047 // Use membars when accessing volatile _thread_state. See |
1048 void set_thread_state(JavaThreadState s) { _thread_state=s; } | 1048 // Threads::create_vm() for size checks. |
1049 JavaThreadState thread_state() const { | |
1050 return (JavaThreadState) OrderAccess::load_acquire((volatile jint*)&_thread_state); | |
1051 } | |
1052 void set_thread_state(JavaThreadState s) { | |
1053 OrderAccess::release_store((volatile jint*)&_thread_state, (jint)s); | |
1054 } | |
1049 ThreadSafepointState *safepoint_state() const { return _safepoint_state; } | 1055 ThreadSafepointState *safepoint_state() const { return _safepoint_state; } |
1050 void set_safepoint_state(ThreadSafepointState *state) { _safepoint_state = state; } | 1056 void set_safepoint_state(ThreadSafepointState *state) { _safepoint_state = state; } |
1051 bool is_at_poll_safepoint() { return _safepoint_state->is_at_poll_safepoint(); } | 1057 bool is_at_poll_safepoint() { return _safepoint_state->is_at_poll_safepoint(); } |
1052 | 1058 |
1053 // thread has called JavaThread::exit() or is terminated | 1059 // thread has called JavaThread::exit() or is terminated |