Lines Matching defs:mutex
142 fssh_panic("could not create mutex");
154 fssh_mutex_destroy(fssh_mutex *mutex)
156 if (mutex == NULL)
159 if (mutex->sem >= 0) {
160 fssh_delete_sem(mutex->sem);
161 mutex->sem = -1;
163 mutex->holder = -1;
168 fssh_mutex_lock(fssh_mutex *mutex)
173 status = fssh_acquire_sem(mutex->sem);
177 if (me == mutex->holder)
178 fssh_panic("mutex_lock failure: mutex %p (sem = 0x%x) acquired twice by thread 0x%x\n", mutex, (int)mutex->sem, (int)me);
180 mutex->holder = me;
186 fssh_mutex_unlock(fssh_mutex *mutex)
190 if (me != mutex->holder) {
191 fssh_panic("mutex_unlock failure: thread 0x%x is trying to release mutex %p (current holder 0x%x)\n",
192 (int)me, mutex, (int)mutex->holder);
195 mutex->holder = -1;
196 fssh_release_sem(mutex->sem);
201 fssh_mutex_transfer_lock(fssh_mutex *mutex, fssh_thread_id thread)
203 mutex->holder = thread;