On Fri, Apr 14, 2023 at 12:12 PM Samuel Thibault <samuel.thiba...@gnu.org> wrote: > 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.
We should drop the reply port before waiting for the signal handler to run, since the handler may block -- is that what you're saying? If it is, good point! > 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). Right, sounds good. > 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 Sergey