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