mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 04:27:44 +00:00
Kernel: Mark sys$alarm as not needing the big lock
Access to Process::m_alarm_timer is serialized via SpinlockProtected, so there's no longer need for this syscall to use the big lock.
This commit is contained in:
parent
496d918e92
commit
5759ea19fb
2 changed files with 3 additions and 3 deletions
|
@ -47,7 +47,7 @@ enum class NeedsBigProcessLock {
|
||||||
#define ENUMERATE_SYSCALLS(S) \
|
#define ENUMERATE_SYSCALLS(S) \
|
||||||
S(accept4, NeedsBigProcessLock::No) \
|
S(accept4, NeedsBigProcessLock::No) \
|
||||||
S(adjtime, NeedsBigProcessLock::No) \
|
S(adjtime, NeedsBigProcessLock::No) \
|
||||||
S(alarm, NeedsBigProcessLock::Yes) \
|
S(alarm, NeedsBigProcessLock::No) \
|
||||||
S(allocate_tls, NeedsBigProcessLock::Yes) \
|
S(allocate_tls, NeedsBigProcessLock::Yes) \
|
||||||
S(anon_create, NeedsBigProcessLock::No) \
|
S(anon_create, NeedsBigProcessLock::No) \
|
||||||
S(annotate_mapping, NeedsBigProcessLock::No) \
|
S(annotate_mapping, NeedsBigProcessLock::No) \
|
||||||
|
|
|
@ -12,10 +12,10 @@ namespace Kernel {
|
||||||
|
|
||||||
ErrorOr<FlatPtr> Process::sys$alarm(unsigned seconds)
|
ErrorOr<FlatPtr> Process::sys$alarm(unsigned seconds)
|
||||||
{
|
{
|
||||||
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
|
VERIFY_NO_PROCESS_BIG_LOCK(this);
|
||||||
TRY(require_promise(Pledge::stdio));
|
TRY(require_promise(Pledge::stdio));
|
||||||
unsigned previous_alarm_remaining = 0;
|
|
||||||
return m_alarm_timer.with([&](auto& timer) -> ErrorOr<FlatPtr> {
|
return m_alarm_timer.with([&](auto& timer) -> ErrorOr<FlatPtr> {
|
||||||
|
unsigned previous_alarm_remaining = 0;
|
||||||
if (timer) {
|
if (timer) {
|
||||||
bool was_in_use = false;
|
bool was_in_use = false;
|
||||||
if (TimerQueue::the().cancel_timer(*timer, &was_in_use)) {
|
if (TimerQueue::the().cancel_timer(*timer, &was_in_use)) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue