23 */
24
25 #ifndef SHARE_VM_GC_SHARED_GCID_HPP
26 #define SHARE_VM_GC_SHARED_GCID_HPP
27
28 #include "memory/allocation.hpp"
29
30 class GCId : public AllStatic {
31 friend class GCIdMark;
32 friend class GCIdMarkAndRestore;
33 static uint _next_id;
34 static const uint UNDEFINED = (uint)-1;
35 static const uint create();
36
37 public:
38 // Returns the currently active GC id. Asserts that there is an active GC id.
39 static const uint current();
40 // Same as current() but can return undefined() if no GC id is currently active
41 static const uint current_raw();
42 static const uint undefined() { return UNDEFINED; }
43 };
44
45 class GCIdMark : public StackObj {
46 uint _gc_id;
47 public:
48 GCIdMark();
49 GCIdMark(uint gc_id);
50 ~GCIdMark();
51 };
52
53 class GCIdMarkAndRestore : public StackObj {
54 uint _gc_id;
55 uint _previous_gc_id;
56 public:
57 GCIdMarkAndRestore();
58 GCIdMarkAndRestore(uint gc_id);
59 ~GCIdMarkAndRestore();
60 };
61
62 #endif // SHARE_VM_GC_SHARED_GCID_HPP
|
23 */
24
25 #ifndef SHARE_VM_GC_SHARED_GCID_HPP
26 #define SHARE_VM_GC_SHARED_GCID_HPP
27
28 #include "memory/allocation.hpp"
29
30 class GCId : public AllStatic {
31 friend class GCIdMark;
32 friend class GCIdMarkAndRestore;
33 static uint _next_id;
34 static const uint UNDEFINED = (uint)-1;
35 static const uint create();
36
37 public:
38 // Returns the currently active GC id. Asserts that there is an active GC id.
39 static const uint current();
40 // Same as current() but can return undefined() if no GC id is currently active
41 static const uint current_raw();
42 static const uint undefined() { return UNDEFINED; }
43 static size_t print_prefix(char* buf, size_t len);
44 };
45
46 class GCIdMark : public StackObj {
47 uint _gc_id;
48 public:
49 GCIdMark();
50 GCIdMark(uint gc_id);
51 ~GCIdMark();
52 };
53
54 class GCIdMarkAndRestore : public StackObj {
55 uint _gc_id;
56 uint _previous_gc_id;
57 public:
58 GCIdMarkAndRestore();
59 GCIdMarkAndRestore(uint gc_id);
60 ~GCIdMarkAndRestore();
61 };
62
63 #endif // SHARE_VM_GC_SHARED_GCID_HPP
|