Rémi Bernon (@rbernon) commented about server/mutex.c:
{
struct mutex *mutex; struct list *ptr;
while ((ptr = list_head( &thread->mutex_list )) != NULL) {
struct mutex *mutex = LIST_ENTRY( ptr, struct mutex, entry );
}mutex = LIST_ENTRY( ptr, struct mutex, entry ); assert( mutex->owner == thread ); mutex->count = 0; mutex->abandoned = 1; do_release( mutex );
- LIST_FOR_EACH_ENTRY(mutex, &inproc_mutexes, struct mutex, inproc_mutexes_entry)
abandon_inproc_mutex( thread->id, mutex->inproc_sync );
So every time a thread dies, we now have to go through every possible mutex because we don't track which ones it owns anymore. Is this an issue? (I don't know and idk if we can do anything about it, but making sure we're aware of this)