Implement timed semaphores in the
kernel, and add an appropriate syscall:
TSEMACQUIRE. We wait for a semaphore
for ms milliseconds or timeout
otherwise. This is needed primarily for
Go, since Go implements atomic sleeps in
its runtime through timed semaphores.
This change has been in use on Plan 9
for a while, by the Nix community.
|