mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 20:47:45 +00:00
Kernel+Userland: Remove global futexes
We only ever use private futexes, so it doesn't make sense to carry around all the complexity required for global (cross-process) futexes.
This commit is contained in:
parent
7979b5a8bb
commit
4226b662cd
8 changed files with 48 additions and 188 deletions
|
@ -31,18 +31,18 @@ static ALWAYS_INLINE int futex_wait(uint32_t* userspace_address, uint32_t value,
|
|||
|
||||
if (abstime) {
|
||||
// NOTE: FUTEX_WAIT takes a relative timeout, so use FUTEX_WAIT_BITSET instead!
|
||||
op = FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG;
|
||||
op = FUTEX_WAIT_BITSET;
|
||||
if (clockid == CLOCK_REALTIME || clockid == CLOCK_REALTIME_COARSE)
|
||||
op |= FUTEX_CLOCK_REALTIME;
|
||||
} else {
|
||||
op = FUTEX_WAIT | FUTEX_PRIVATE_FLAG;
|
||||
op = FUTEX_WAIT;
|
||||
}
|
||||
return futex(userspace_address, op, value, abstime, nullptr, FUTEX_BITSET_MATCH_ANY);
|
||||
}
|
||||
|
||||
static ALWAYS_INLINE int futex_wake(uint32_t* userspace_address, uint32_t count)
|
||||
{
|
||||
return futex(userspace_address, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, count, NULL, NULL, 0);
|
||||
return futex(userspace_address, FUTEX_WAKE, count, NULL, NULL, 0);
|
||||
}
|
||||
|
||||
int purge(int mode);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue