GNU Info

Info Node: (am-utils.info)Non-blocking Operation

(am-utils.info)Non-blocking Operation


Prev: Keep-alives Up: Overview
Enter node , (file) or (file)node

Non-blocking Operation
======================

   Since there is only one instance of Amd for each automount point,
and usually only one instance on each machine, it is important that it
is always available to service kernel calls.  Amd goes to great lengths
to ensure that it does not block in a system call.  As a last resort
Amd will fork before it attempts a system call that may block
indefinitely, such as mounting an NFS filesystem.  Other tasks such as
obtaining filehandle information for an NFS filesystem, are done using a
purpose built non-blocking RPC library which is integrated with Amd's
task scheduler.  This library is also used to implement NFS keep-alives
(Note: Keep-alives).

   Whenever a mount is deferred or backgrounded, Amd must wait for it
to complete before replying to the kernel.  However, this would cause
Amd to block waiting for a reply to be constructed.  Rather than do
this, Amd simply "drops" the call under the assumption that the kernel
RPC mechanism will automatically retry the request.


automatically generated by info2www version 1.2.2.9