according to the hash value of the mutex and its bit index in `__sp_mask`. It then only needs to check its own flag byte. If the byte is zero, it continues spinning; otherwise, it resets the byte to zero and makes an attempt to lock the mutex. ...
g_mutex_clear_impl (GMutex *mutex) { g_mutex_impl_free (mutex->p); } void G_ALWAYS_INLINE static inline void g_mutex_lock_impl (GMutex *mutex) { gint status; @@ -167,7 +167,7 @@ g_mutex_lock_impl (GMutex *mutex) g_thread_abort (status, "pthread_mutex_lock"); } void ...
g_mutex_lock(&coroutine_lock); from->runnable=false; from->action= action; to->runnable=true; to->action= action; g_cond_broadcast(&coroutine_cond); if(action != COROUTINE_TERMINATE) { coroutine_wait_runnable_locked(from); } g_mutex_unlock(&coroutine_lock); ...
g_static_mutex_lock(&coroutine_lock); from->runnable=false; from->action= action; to->runnable=true; to->action= action; g_cond_broadcast(coroutine_cond); if(action != COROUTINE_TERMINATE) { coroutine_wait_runnable_locked(from);
Search or jump to... Search code, repositories, users, issues, pull requests... Provide feedback We read every piece of feedback, and take your input very seriously. Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your...