Sergey Bugaev via Libc-alpha, le ven. 14 avril 2023 11:53:43 +0300, a ecrit: > It's in _hurdsig_abort_rpcs, if the interrupt_operation call fails. > > Let's maybe not do that either? We're already making mach_msg seem to > have returned EINTR, which intr-msg knows how to handle.
Mmm, yes, but we need to make *sure* we don't re-use the port and that it gets dropped at some point not too far, otherwise the server will stay stuck trying to reply. Managing to make the port a dead name seems a good way to me. Something like adding a send right to the port, then dropping the receive right. And making the __mig_dealloc_reply_port detect that case (if dropping the receive right returns KERN_INVALID_VALUE, it means it has indeed become a dead name for a send right, which one can drop instead). Again, in such code I don't think I can see the whole picture so it's testsuites that will find out the various cases. Samuel