From 98adb2ab0c8001dbe9204b233d135224c985b4be Mon Sep 17 00:00:00 2001 From: jhb Date: Thu, 23 Aug 2001 23:37:31 +0000 Subject: Remove references to asleep/await. --- share/man/man9/Makefile | 2 +- share/man/man9/sleep.9 | 113 ------------------------------------------------ 2 files changed, 1 insertion(+), 114 deletions(-) (limited to 'share') diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 1baada5..c3f9d7d 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -152,7 +152,7 @@ MLINKS+=scheduler.9 roundrobin_interval.9 scheduler.9 sched_setup.9 MLINKS+=scheduler.9 schedclock.9 scheduler.9 schedcpu.9 MLINKS+=scheduler.9 setrunnable.9 scheduler.9 updatepri.9 MLINKS+=sleep.9 tsleep.9 sleep.9 wakeup.9 sleep.9 wakeup_one.9 -MLINKS+=sleep.9 asleep.9 sleep.9 await.9 sleep.9 msleep.9 +MLINKS+=sleep.9 msleep.9 MLINKS+=sleepqueue.9 endtsleep.9 sleepqueue.9 sleepinit.9 MLINKS+=sleepqueue.9 unsleep.9 MLINKS+=buf.9 bp.9 diff --git a/share/man/man9/sleep.9 b/share/man/man9/sleep.9 index 3aa8080..6404eb2 100644 --- a/share/man/man9/sleep.9 +++ b/share/man/man9/sleep.9 @@ -32,8 +32,6 @@ .Nm sleep , .Nm msleep , .Nm tsleep , -.Nm asleep , -.Nm await , .Nm wakeup .Nd wait for events .Sh SYNOPSIS @@ -44,10 +42,6 @@ .Fn tsleep "void *ident" "int priority" "const char *wmesg" "int timo" .Ft int .Fn msleep "void *ident" "struct mtx *mtx" "int priority" "const char *wmesg" "int timo" -.Ft int -.Fn asleep "void *ident" "int priority" "const char *wmesg" "int timo" -.Ft int -.Fn await "int priority" "int timo" .Ft void .Fn wakeup "void *ident" .Ft void @@ -127,102 +121,6 @@ parameter will not be entered before returning. The mutex is used to ensure that a condition can be checked atomicly, and that the current process can be suspended without missing a change to the condition, or an associated wakeup. -.Pp -.Nm Asleep -implements the new asynchronous sleep function. It takes the same arguments -as -.Fn tsleep -and places the process on the appropriate wait queue, but -.Fn asleep -leaves the process runnable and returns immediately. The caller is then -expected to, at some point in the future, call -.Fn await -to actually wait for the previously queued wait condition. -If -.Fn asleep -is called several times, only the most recent call is effective. -.Fn asleep -may be called with an -.Ar ident -value of NULL -to remove any previously queued condition. -.Pp -.Nm Await -implements the new asynchronous wait function. When -.Fn asleep -is called on an identifier it associates the process with that -identifier but does not block. -.Fn await -will actually block the process until -.Fn wakeup -is called on that identifier any time after the -.Fn asleep . -If -.Fn wakeup -is called after you -.Fn asleep -but before you -.Fn await -then the -.Fn await -call is effectively a NOP. -If -.Fn await -is called multiple times without an intervening -.Fn asleep , -the -.Fn await -is effectively a NOP but will also call -.Fn mi_switch -for safety. The -.Fn await -function allows you to override the priority and timeout values to be used. -If the value -1 is specified for an argument, the value is taken from the -previous -.Fn asleep -call. If -1 is passed for the priority you must be prepared to catch signal -conditions if the prior call to -.Fn asleep -specified it in its priority. If -1 is passed for the timeout you must be -prepared to catch a timeout condition if the prior call to -.Fn asleep -specified a timeout. When you use -1, it is usually a good idea to not make -assumptions as to the arguments used by the prior -.Fn asleep -call. -.Pp -The -.Fn asleep -and -.Fn await -functions are mainly used by the kernel to shift the burden of blocking -away from extremely low level routines and to push it onto their callers. -This in turn allows more complex interlocking code to -.Em backout -of a temporary resource failure -(such as lack of memory) in order to release major locks prior to actually -blocking, and to then retry the operation on wakeup. This key feature is -expected to be heavily used in SMP situations in order to allow code to make -better use of spinlocks. A spinlock, by its very nature, cannot be used -around code that might block. It is hoped that these capabilities will -make it easier to migrate the SMP master locks deeper into the kernel. -.Pp -These routines may also be used to avoid nasty spl*() calls to get around -race conditions with simple conditional test/wait interlocks. You simply -call -.Fn asleep -prior to your test, then conditionally -.Fn await -only if the test fails. It is usually a good idea to cancel an -.Fn asleep -if you wind up never calling the related -.Fn await , -but it is not required. If you do not want to waste cpu calling -.Fn asleep -unnecessarily, you can surround the whole thing with a second test. The -race condition is still handled by the inside -.Fn asleep -call. .Sh RETURN VALUES See above. .Sh SEE ALSO @@ -237,12 +135,6 @@ appeared in a very early version of Unix. appeared in .Bx 4.4 . .Pp -.Nm Asleep Ns / Ns Nm await -first appeared in -.Fx 3.0 -and is designed to shift the burden of blocking -away from extremely low level routines and push it up to their callers. -.Pp .Nm Sleep used to be the traditional form. It doesn't let you specify a timeout or a .Ar wmesg , @@ -251,8 +143,3 @@ hence it has been discontinued. .An -nosplit This man page was written by .An J\(:org Wunsch . -.Nm Asleep -and -.Nm await -were designed and written by -.An Matthew Dillon . -- cgit v1.1