15 #include "selectThreadImpl.h" 17 #ifdef THREAD_SIMPLE_IMPL 19 #include "mutexSimpleImpl.h" 20 #include "threadSimpleImpl.h" 21 #include "threadSimpleManager.h" 28 void MutexSimpleImpl::
32 ThreadSimpleManager *manager = ThreadSimpleManager::get_global_ptr();
33 ThreadSimpleImpl *thread = manager->get_current_thread();
35 while ((_flags & F_lock_count) != 0) {
36 manager->enqueue_block(thread,
this);
37 manager->next_context();
40 _flags |= F_lock_count;
48 void MutexSimpleImpl::
52 ThreadSimpleManager *manager = ThreadSimpleManager::get_global_ptr();
53 if (manager->unblock_one(
this)) {
56 ThreadSimpleImpl *thread = manager->get_current_thread();
57 manager->enqueue_ready(thread,
false);
58 manager->next_context();
67 void MutexSimpleImpl::
68 do_release_quietly() {
69 ThreadSimpleManager *manager = ThreadSimpleManager::get_global_ptr();
70 manager->unblock_one(
this);
73 #endif // THREAD_SIMPLE_IMPL