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

Reply via email to