Aloha -

'netmsg' is progressing nicely.  I'm developing a test suite for it, and
have encountered an oblique case that's causing me some grief.

The problem is related to NO SENDERS notifications, which currently remain
attached to a port if its receive right is moved.  This contrasts with the
behavior of DEAD NAME notifications, which seem not to remain attached to a
send right when it moves, and instead generate a PORT DELETED notification
if the process's last send right is moved (or destroyed).

The Mach 3 kernel interfaces document, on page 60, includes the following
statement:

(Note: Currently, moving a receive right does not affect any extant
no-senders notifications. It is currently planned to change this so that
no-senders notifications are canceled, with a send-once notification sent
to indicate the cancellation.)

Well, this is exactly the situation that I'm wrestling with now.  Tracking
NO SENDERS notifications across a network connection is a big headache.  It
would be a lot easier if the behavior was changed as planned.

I don't even have to change the kernel to implement that behavior in
'netmsg'.  I can trigger that cancellation message myself, by just
destroying the send-once right.

Of course, then the behavior would differ depending on whether you moved a
receive right locally or remotely.  Notifications would follow local moves,
but trigger cancellation on remote moves.  Programs could not depend on
either behavior.

Any comments?

    agape
    brent

Reply via email to