HomeFreeBSD

Make blocking CloudABI futex operations work.

Description

Make blocking CloudABI futex operations work.

Blocking on locks and condition variables can be accomplished by polling
and using the special filters CONDVAR, LOCK_RDLOCK and LOCK_WRLOCK.

For now it wouldn't make sense to implement this functionality into
kqueue() itself, for the reason that they are CloudABI specific and
would require us to resize 'struct kevent' to hold all of the parameters
of interest.

Add a bandaid to the CloudABI poll system call to call into the futex
code directly if it detects specific combinations of events that are
used by the C library.

Obtained from: https://github.com/NuxiNL/freebsd

Details

Provenance
edAuthored on
Parents
rS286655: Fix set of sign extension bugs in r286625.
Branches
Unknown
Tags
Unknown