kernel/sem: Restore interrupts-unlock before free().
This commit is contained in:
@@ -355,7 +355,7 @@ delete_sem_internal(sem_id id, bool checkPermission)
|
|||||||
|
|
||||||
int32 slot = id % sMaxSems;
|
int32 slot = id % sMaxSems;
|
||||||
|
|
||||||
InterruptsLocker _;
|
InterruptsLocker interruptsLocker;
|
||||||
SpinLocker listLocker(sSemsSpinlock);
|
SpinLocker listLocker(sSemsSpinlock);
|
||||||
SpinLocker semLocker(sSems[slot].lock);
|
SpinLocker semLocker(sSems[slot].lock);
|
||||||
|
|
||||||
@@ -386,6 +386,8 @@ delete_sem_internal(sem_id id, bool checkPermission)
|
|||||||
scheduler_reschedule_if_necessary_locked();
|
scheduler_reschedule_if_necessary_locked();
|
||||||
schedulerLocker.Unlock();
|
schedulerLocker.Unlock();
|
||||||
|
|
||||||
|
interruptsLocker.Unlock();
|
||||||
|
|
||||||
free(name);
|
free(name);
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user