1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-02 23:12:08 +00:00

Kernel: Make Process's m_promises & m_execpromises fields atomic

This is essentially free on x86 and allows us to not hold the big
process lock just to check the required promises for a syscall.
This commit is contained in:
Idan Horowitz 2021-08-06 15:12:33 +03:00 committed by Andreas Kling
parent 868be680c2
commit c3f668a758
4 changed files with 12 additions and 12 deletions

View file

@ -30,10 +30,10 @@ KResultOr<FlatPtr> Process::sys$fork(RegisterState& regs)
{
ProtectedDataMutationScope scope { *child };
child->m_promises = m_promises;
child->m_execpromises = m_execpromises;
child->m_has_promises = m_has_promises;
child->m_has_execpromises = m_has_execpromises;
child->m_promises = m_promises.load();
child->m_execpromises = m_execpromises.load();
child->m_has_promises = m_has_promises.load();
child->m_has_execpromises = m_has_execpromises.load();
child->m_sid = m_sid;
child->m_extra_gids = m_extra_gids;
child->m_umask = m_umask;