< prev index next >

src/hotspot/share/runtime/handshake.hpp

Print this page
rev 57137 : imported patch 8234796-v2

*** 24,49 **** #ifndef SHARE_RUNTIME_HANDSHAKE_HPP #define SHARE_RUNTIME_HANDSHAKE_HPP #include "memory/allocation.hpp" #include "runtime/flags/flagSetting.hpp" #include "runtime/semaphore.hpp" - class ThreadClosure; class JavaThread; ! // A handshake operation is a callback that is executed for each JavaThread // while that thread is in a safepoint safe state. The callback is executed // either by the thread itself or by the VM thread while keeping the thread // in a blocked state. A handshake can be performed with a single // JavaThread as well. class Handshake : public AllStatic { public: // Execution of handshake operation ! static void execute(ThreadClosure* thread_cl); ! static bool execute(ThreadClosure* thread_cl, JavaThread* target); }; class HandshakeOperation; // The HandshakeState keep tracks of an ongoing handshake for one JavaThread. --- 24,59 ---- #ifndef SHARE_RUNTIME_HANDSHAKE_HPP #define SHARE_RUNTIME_HANDSHAKE_HPP #include "memory/allocation.hpp" + #include "memory/iterator.hpp" #include "runtime/flags/flagSetting.hpp" #include "runtime/semaphore.hpp" class JavaThread; ! // A handshake closure is a callback that is executed for each JavaThread // while that thread is in a safepoint safe state. The callback is executed // either by the thread itself or by the VM thread while keeping the thread // in a blocked state. A handshake can be performed with a single // JavaThread as well. + class HandshakeClosure : public ThreadClosure { + const char* const _name; + public: + HandshakeClosure(const char* name) : _name(name) {} + const char* name() const { + return _name; + } + virtual void do_thread(Thread* thread) = 0; + }; + class Handshake : public AllStatic { public: // Execution of handshake operation ! static void execute(HandshakeClosure* hs_cl); ! static bool execute(HandshakeClosure* hs_cl, JavaThread* target); }; class HandshakeOperation; // The HandshakeState keep tracks of an ongoing handshake for one JavaThread.
< prev index next >