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);
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.