27 |
27 |
28 #include "memory/allocation.hpp" |
28 #include "memory/allocation.hpp" |
29 #include "memory/allocation.inline.hpp" |
29 #include "memory/allocation.inline.hpp" |
30 #include "runtime/mutex.hpp" |
30 #include "runtime/mutex.hpp" |
31 #include "runtime/orderAccess.inline.hpp" |
31 #include "runtime/orderAccess.inline.hpp" |
|
32 #include "utilities/globalDefinitions.hpp" |
32 #include "utilities/stack.hpp" |
33 #include "utilities/stack.hpp" |
33 |
34 |
34 // Simple TaskQueue stats that are collected by default in debug builds. |
35 // Simple TaskQueue stats that are collected by default in debug builds. |
35 |
36 |
36 #if !defined(TASKQUEUE_STATS) && defined(ASSERT) |
37 #if !defined(TASKQUEUE_STATS) && defined(ASSERT) |
605 |
606 |
606 class ParallelTaskTerminator: public StackObj { |
607 class ParallelTaskTerminator: public StackObj { |
607 private: |
608 private: |
608 int _n_threads; |
609 int _n_threads; |
609 TaskQueueSetSuper* _queue_set; |
610 TaskQueueSetSuper* _queue_set; |
|
611 char _pad_before[DEFAULT_CACHE_LINE_SIZE]; |
610 int _offered_termination; |
612 int _offered_termination; |
|
613 char _pad_after[DEFAULT_CACHE_LINE_SIZE]; |
611 |
614 |
612 #ifdef TRACESPINNING |
615 #ifdef TRACESPINNING |
613 static uint _total_yields; |
616 static uint _total_yields; |
614 static uint _total_spins; |
617 static uint _total_spins; |
615 static uint _total_peeks; |
618 static uint _total_peeks; |