16 #ifdef THREAD_SIMPLE_IMPL 25 void MutexSimpleImpl::
29 ThreadSimpleManager *manager = ThreadSimpleManager::get_global_ptr();
30 ThreadSimpleImpl *thread = manager->get_current_thread();
32 while ((_flags & F_lock_count) != 0) {
33 manager->enqueue_block(thread,
this);
34 manager->next_context();
37 _flags |= F_lock_count;
43 void MutexSimpleImpl::
47 ThreadSimpleManager *manager = ThreadSimpleManager::get_global_ptr();
48 if (manager->unblock_one(
this)) {
51 ThreadSimpleImpl *thread = manager->get_current_thread();
52 manager->enqueue_ready(thread,
false);
53 manager->next_context();
60 void MutexSimpleImpl::
62 ThreadSimpleManager *manager = ThreadSimpleManager::get_global_ptr();
63 manager->unblock_one(
this);
66 #endif // THREAD_SIMPLE_IMPL PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.