Copyright (C) 2000-2012 |
GNU Info (am-utils.info)Non-blocking OperationNon-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 |