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