Samuel Thibault, le dim. 23 août 2026 11:16:59 +0200, a ecrit:
> Samuel Thibault, le dim. 23 août 2026 11:11:52 +0200, a ecrit:
> > Samuel Thibault, le dim. 23 août 2026 10:24:52 +0200, a ecrit:
> > > One thing that is a bug, however, is the program below, which stays
> > > blocked because the mach_msg calling loop keeps using the same timeout.
> > > 
> > > We probably need a version that takes a clock_id and an absolute time,
> > > and does the clock_gettime call itself on each mach_msg calling loop.
> > 
> > Or probably simpler: make __pthread_timedblock always pass
> > MACH_RCV_INTERRUPT to __mach_msg, but loop around if it returns EINTR
> > and MACH_RCV_INTERRUPT was not in MSG_OPTIONS.
> 
> Could you try this?

Mmm, but __pthread_timedblock really calls the non-interruptible
__mach_msg, so the patch is rather an bandaid: the problem is not
actually _hurd_intr_rpc_mach_msg looping around since it's never called,
but __mach_msg_trap itself looping around, either inside the kernel, or
because of signal handling.

Samuel

Reply via email to