Re: io_close proposal
Marcus Brinkmann <[email protected]>
| Newsgroups | gmane.os.hurd.devel.readers |
|---|---|
| Message-ID | <[email protected]> |
On Sun, May 19, 2002 at 01:31:54PM -0700, Thomas Bushnell, BSG wrote: > Marcus Brinkmann <[email protected]> writes: > > > Well, the real problem, and the explanation why my idea won't work is this: > > > > If the server sees 1 extant send right, he doesn't know if this is the > > callers extant send right, or if the number of extant send rights has been > > 2 and the caller did: > > > > io_close_request(port) > > mach_port_deallocate(mach_task_self(), port); > > Here, the user has not followed the protocol. He has the port > *twice*, and if he wants close actions to work properly, he must call > io_close_request on *each*. Sorry, I was not being clear. I was arguing here against the idea of sending the io_close _without sending the port right along with the message_, which is a different idea from the one I originally proposed. The point is that the current interruptible RPC stubs expect that the caller keeps a send right for each send right moved in the message. I was trying to think about a way to make io_close work without moving the send right of the caller to the server. I think I have showed that such an approach is impossible to work reliably. I should have given the io_close_request above a different name to distinguish it from the original proposal. Thanks, Marcus -- `Rhubarb is no Egyptian god.' Debian http://www.debian.org [email protected] Marcus Brinkmann GNU http://www.gnu.org [email protected] [email protected] http://www.marcus-brinkmann.de