mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 18:31:55 -04:00
compiler opt defeating
This commit is contained in:
parent
8504825116
commit
c811ae5865
@ -132,8 +132,8 @@ do_lock() {
|
|||||||
|
|
||||||
// Go to sleep on the condition variable until it's unlocked.
|
// Go to sleep on the condition variable until it's unlocked.
|
||||||
|
|
||||||
if (thread_cat.is_spam()) {
|
if (thread_cat.is_debug()) {
|
||||||
thread_cat.spam()
|
thread_cat.debug()
|
||||||
<< *this_thread << " blocking on " << *this << " (held by "
|
<< *this_thread << " blocking on " << *this << " (held by "
|
||||||
<< *_locking_thread << ")\n";
|
<< *_locking_thread << ")\n";
|
||||||
}
|
}
|
||||||
@ -141,8 +141,8 @@ do_lock() {
|
|||||||
_cvar_impl.wait();
|
_cvar_impl.wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (thread_cat.is_spam()) {
|
if (thread_cat.is_debug()) {
|
||||||
thread_cat.spam()
|
thread_cat.debug()
|
||||||
<< *this_thread << " awake on " << *this << "\n";
|
<< *this_thread << " awake on " << *this << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,7 +46,13 @@ setup_context_2(ThreadSimpleImpl *self) {
|
|||||||
// Here we are executing within the thread.
|
// Here we are executing within the thread.
|
||||||
v_self->setup_context_3();
|
v_self->setup_context_3();
|
||||||
|
|
||||||
|
// We shouldn't get here.
|
||||||
abort();
|
abort();
|
||||||
|
|
||||||
|
// Even though this line should never be executed, setting it here
|
||||||
|
// seems to help the compiler figure out not to optimize away
|
||||||
|
// v_self.
|
||||||
|
*v_self = 0;
|
||||||
return v_self;
|
return v_self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,9 +182,8 @@ next_context() {
|
|||||||
// Mark the current thread's resume point.
|
// Mark the current thread's resume point.
|
||||||
|
|
||||||
#ifdef HAVE_PYTHON
|
#ifdef HAVE_PYTHON
|
||||||
// Query the current Python thread state.
|
// Save the current Python thread state.
|
||||||
_current_thread->_python_state = PyThreadState_Swap(NULL);
|
_current_thread->_python_state = PyThreadState_Swap(NULL);
|
||||||
PyThreadState_Swap(_current_thread->_python_state);
|
|
||||||
#endif // HAVE_PYTHON
|
#endif // HAVE_PYTHON
|
||||||
|
|
||||||
#ifdef HAVE_UCONTEXT_H
|
#ifdef HAVE_UCONTEXT_H
|
||||||
@ -280,9 +279,18 @@ next_context() {
|
|||||||
_current_thread->_start_time = now;
|
_current_thread->_start_time = now;
|
||||||
|
|
||||||
// All right, the thread is ready to roll. Begin.
|
// All right, the thread is ready to roll. Begin.
|
||||||
if (thread_cat.is_spam()) {
|
if (thread_cat.is_debug()) {
|
||||||
thread_cat.spam()
|
size_t blocked_count = 0;
|
||||||
<< "Switching to " << *_current_thread->_parent_obj << "\n";
|
Blocked::const_iterator bi;
|
||||||
|
for (bi = _blocked.begin(); bi != _blocked.end(); ++bi) {
|
||||||
|
const FifoThreads &threads = (*bi).second;
|
||||||
|
blocked_count += threads.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
thread_cat.debug()
|
||||||
|
<< "Switching to " << *_current_thread->_parent_obj
|
||||||
|
<< " (" << _ready.size() << " other threads ready, " << blocked_count
|
||||||
|
<< " blocked, " << _sleeping.size() << " sleeping)\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_UCONTEXT_H
|
#ifdef HAVE_UCONTEXT_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user