< prev index next >
src/hotspot/share/runtime/thread.cpp
Print this page
rev 52911 : imported patch no_early_njt
@@ -304,19 +304,23 @@
this == align_up(_real_malloc_address, (int)markOopDesc::biased_lock_alignment),
"bug in forced alignment of thread objects");
}
#endif // ASSERT
- // Notify the barrier set that a thread is being created. Note that some
- // threads are created before a barrier set is available. The call to
- // BarrierSet::on_thread_create() for these threads is therefore deferred
+ // Notify the barrier set that a thread is being created. The initial
+ // thread is created before the barrier set is available. The call to
+ // BarrierSet::on_thread_create() for this thread is therefore deferred
// to BarrierSet::set_barrier_set().
BarrierSet* const barrier_set = BarrierSet::barrier_set();
if (barrier_set != NULL) {
barrier_set->on_thread_create(this);
} else {
- DEBUG_ONLY(Threads::inc_threads_before_barrier_set();)
+#ifdef ASSERT
+ static bool initial_thread_created = false;
+ assert(!initial_thread_created, "creating thread before barrier set");
+ initial_thread_created = true;
+#endif // ASSERT
}
}
void Thread::initialize_thread_current() {
#ifndef USE_LIBRARY_BASED_TLS_ONLY
@@ -3393,11 +3397,10 @@
int Threads::_thread_claim_parity = 0;
size_t JavaThread::_stack_size_at_create = 0;
#ifdef ASSERT
bool Threads::_vm_complete = false;
-size_t Threads::_threads_before_barrier_set = 0;
#endif
static inline void *prefetch_and_load_ptr(void **addr, intx prefetch_interval) {
Prefetch::read((void*)addr, prefetch_interval);
return *addr;
< prev index next >