Lines Matching full:mutex
2 * Wrappers around mutex/cond/thread functions
67 void qemu_mutex_init(QemuMutex *mutex) in qemu_mutex_init() argument
71 err = pthread_mutex_init(&mutex->lock, NULL); in qemu_mutex_init()
74 qemu_mutex_post_init(mutex); in qemu_mutex_init()
77 void qemu_mutex_destroy(QemuMutex *mutex) in qemu_mutex_destroy() argument
81 assert(mutex->initialized); in qemu_mutex_destroy()
82 mutex->initialized = false; in qemu_mutex_destroy()
83 err = pthread_mutex_destroy(&mutex->lock); in qemu_mutex_destroy()
88 void qemu_mutex_lock_impl(QemuMutex *mutex, const char *file, const int line) in qemu_mutex_lock_impl() argument
92 assert(mutex->initialized); in qemu_mutex_lock_impl()
93 qemu_mutex_pre_lock(mutex, file, line); in qemu_mutex_lock_impl()
94 err = pthread_mutex_lock(&mutex->lock); in qemu_mutex_lock_impl()
97 qemu_mutex_post_lock(mutex, file, line); in qemu_mutex_lock_impl()
100 int qemu_mutex_trylock_impl(QemuMutex *mutex, const char *file, const int line) in qemu_mutex_trylock_impl() argument
104 assert(mutex->initialized); in qemu_mutex_trylock_impl()
105 err = pthread_mutex_trylock(&mutex->lock); in qemu_mutex_trylock_impl()
107 qemu_mutex_post_lock(mutex, file, line); in qemu_mutex_trylock_impl()
116 void qemu_mutex_unlock_impl(QemuMutex *mutex, const char *file, const int line) in qemu_mutex_unlock_impl() argument
120 assert(mutex->initialized); in qemu_mutex_unlock_impl()
121 qemu_mutex_pre_unlock(mutex, file, line); in qemu_mutex_unlock_impl()
122 err = pthread_mutex_unlock(&mutex->lock); in qemu_mutex_unlock_impl()
127 void qemu_rec_mutex_init(QemuRecMutex *mutex) in qemu_rec_mutex_init() argument
134 err = pthread_mutex_init(&mutex->m.lock, &attr); in qemu_rec_mutex_init()
139 mutex->m.initialized = true; in qemu_rec_mutex_init()
142 void qemu_rec_mutex_destroy(QemuRecMutex *mutex) in qemu_rec_mutex_destroy() argument
144 qemu_mutex_destroy(&mutex->m); in qemu_rec_mutex_destroy()
147 void qemu_rec_mutex_lock_impl(QemuRecMutex *mutex, const char *file, int line) in qemu_rec_mutex_lock_impl() argument
149 qemu_mutex_lock_impl(&mutex->m, file, line); in qemu_rec_mutex_lock_impl()
152 int qemu_rec_mutex_trylock_impl(QemuRecMutex *mutex, const char *file, int line) in qemu_rec_mutex_trylock_impl() argument
154 return qemu_mutex_trylock_impl(&mutex->m, file, line); in qemu_rec_mutex_trylock_impl()
157 void qemu_rec_mutex_unlock_impl(QemuRecMutex *mutex, const char *file, int line) in qemu_rec_mutex_unlock_impl() argument
159 qemu_mutex_unlock_impl(&mutex->m, file, line); in qemu_rec_mutex_unlock_impl()
219 void qemu_cond_wait_impl(QemuCond *cond, QemuMutex *mutex, const char *file, const int line) in qemu_cond_wait_impl() argument
224 qemu_mutex_pre_unlock(mutex, file, line); in qemu_cond_wait_impl()
225 err = pthread_cond_wait(&cond->cond, &mutex->lock); in qemu_cond_wait_impl()
226 qemu_mutex_post_lock(mutex, file, line); in qemu_cond_wait_impl()
232 qemu_cond_timedwait_ts(QemuCond *cond, QemuMutex *mutex, struct timespec *ts, in qemu_cond_timedwait_ts() argument
238 trace_qemu_mutex_unlock(mutex, file, line); in qemu_cond_timedwait_ts()
239 err = pthread_cond_timedwait(&cond->cond, &mutex->lock, ts); in qemu_cond_timedwait_ts()
240 trace_qemu_mutex_locked(mutex, file, line); in qemu_cond_timedwait_ts()
247 bool qemu_cond_timedwait_impl(QemuCond *cond, QemuMutex *mutex, int ms, in qemu_cond_timedwait_impl() argument
253 return qemu_cond_timedwait_ts(cond, mutex, &ts, file, line); in qemu_cond_timedwait_impl()
258 qemu_mutex_init(&sem->mutex); in qemu_sem_init()
270 qemu_mutex_destroy(&sem->mutex); in qemu_sem_destroy()
275 qemu_mutex_lock(&sem->mutex); in qemu_sem_post()
282 qemu_mutex_unlock(&sem->mutex); in qemu_sem_post()
291 qemu_mutex_lock(&sem->mutex); in qemu_sem_timedwait()
296 rc = qemu_cond_timedwait_ts(&sem->cond, &sem->mutex, &ts, in qemu_sem_timedwait()
306 qemu_mutex_unlock(&sem->mutex); in qemu_sem_timedwait()
312 qemu_mutex_lock(&sem->mutex); in qemu_sem_wait()
314 qemu_cond_wait(&sem->cond, &sem->mutex); in qemu_sem_wait()
317 qemu_mutex_unlock(&sem->mutex); in qemu_sem_wait()