nvmm: preempt_disable should be able to be nested.
May fix #20224. Change-Id: Ide859c35c76b525af1dd6bc5ab3b640e89039503 Reviewed-on: https://review.haiku-os.org/c/haiku/+/11415 Reviewed-by: waddlesplash <[email protected]> (cherry picked from commit 4fc9b717c3e4e5d22a9d434b25c032f78a56f5c4) Reviewed-on: https://review.haiku-os.org/c/haiku/+/11418
This commit is contained in:
committed by
waddlesplash
parent
b87d2919ef
commit
f70d950766
@@ -192,14 +192,15 @@ haiku_thread_unpin()
|
|||||||
extern "C" void
|
extern "C" void
|
||||||
os_preempt_disable()
|
os_preempt_disable()
|
||||||
{
|
{
|
||||||
thread_get_current_thread()->cpu->reschedule_disabled = true;
|
thread_get_current_thread()->cpu->reschedule_disabled++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern "C" void
|
extern "C" void
|
||||||
os_preempt_enable()
|
os_preempt_enable()
|
||||||
{
|
{
|
||||||
thread_get_current_thread()->cpu->reschedule_disabled = false;
|
ASSERT(os_preempt_disabled());
|
||||||
|
thread_get_current_thread()->cpu->reschedule_disabled--;
|
||||||
if (os_return_needed())
|
if (os_return_needed())
|
||||||
scheduler_reschedule_if_necessary();
|
scheduler_reschedule_if_necessary();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user