22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc_implementation/g1/g1Log.hpp"
27 #include "gc_implementation/g1/g1StringDedup.hpp"
28 #include "gc_implementation/g1/g1StringDedupTable.hpp"
29 #include "gc_implementation/g1/g1StringDedupThread.hpp"
30 #include "gc_implementation/g1/g1StringDedupQueue.hpp"
31 #include "runtime/atomic.inline.hpp"
32
33 G1StringDedupThread* G1StringDedupThread::_thread = NULL;
34
35 G1StringDedupThread::G1StringDedupThread() :
36 ConcurrentGCThread() {
37 set_name("G1 StrDedup");
38 create_and_start();
39 }
40
41 G1StringDedupThread::~G1StringDedupThread() {
42 ShouldNotReachHere();
43 }
44
45 void G1StringDedupThread::create() {
46 assert(G1StringDedup::is_enabled(), "String deduplication not enabled");
47 assert(_thread == NULL, "One string deduplication thread allowed");
48 _thread = new G1StringDedupThread();
49 }
50
51 G1StringDedupThread* G1StringDedupThread::thread() {
52 assert(G1StringDedup::is_enabled(), "String deduplication not enabled");
53 assert(_thread != NULL, "String deduplication thread not created");
54 return _thread;
55 }
56
57 void G1StringDedupThread::run() {
58 G1StringDedupStat total_stat;
59
60 initialize_in_thread();
61 wait_for_universe_init();
62
|
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc_implementation/g1/g1Log.hpp"
27 #include "gc_implementation/g1/g1StringDedup.hpp"
28 #include "gc_implementation/g1/g1StringDedupTable.hpp"
29 #include "gc_implementation/g1/g1StringDedupThread.hpp"
30 #include "gc_implementation/g1/g1StringDedupQueue.hpp"
31 #include "runtime/atomic.inline.hpp"
32
33 G1StringDedupThread* G1StringDedupThread::_thread = NULL;
34
35 G1StringDedupThread::G1StringDedupThread() :
36 ConcurrentGCThread() {
37 set_name("G1 StrDedup");
38 create_and_start();
39 }
40
41 G1StringDedupThread::~G1StringDedupThread() {
42 guarantee(false, "Should never be destroyed");
43 }
44
45 void G1StringDedupThread::create() {
46 assert(G1StringDedup::is_enabled(), "String deduplication not enabled");
47 assert(_thread == NULL, "One string deduplication thread allowed");
48 _thread = new G1StringDedupThread();
49 }
50
51 G1StringDedupThread* G1StringDedupThread::thread() {
52 assert(G1StringDedup::is_enabled(), "String deduplication not enabled");
53 assert(_thread != NULL, "String deduplication thread not created");
54 return _thread;
55 }
56
57 void G1StringDedupThread::run() {
58 G1StringDedupStat total_stat;
59
60 initialize_in_thread();
61 wait_for_universe_init();
62
|