--- a/src/hotspot/share/runtime/safepoint.hpp Fri Mar 02 17:33:59 2018 -0800
+++ b/src/hotspot/share/runtime/safepoint.hpp Sat Mar 03 23:56:08 2018 -0500
@@ -209,6 +209,20 @@
}
};
+// Some helper assert macros for safepoint checks.
+
+#define assert_at_safepoint() \
+ assert(SafepointSynchronize::is_at_safepoint(), "should be at a safepoint")
+
+#define assert_at_safepoint_msg(...) \
+ assert(SafepointSynchronize::is_at_safepoint(), __VA_ARGS__)
+
+#define assert_not_at_safepoint() \
+ assert(!SafepointSynchronize::is_at_safepoint(), "should not be at a safepoint")
+
+#define assert_not_at_safepoint_msg(...) \
+ assert(!SafepointSynchronize::is_at_safepoint(), __VA_ARGS__)
+
// State class for a thread suspended at a safepoint
class ThreadSafepointState: public CHeapObj<mtInternal> {
public: