Re: [PATCH glibc-2.44] Fix __pthread_timedblock for hurd
Samuel Thibault <[email protected]>
| Newsgroups | gmane.os.hurd.bugs |
|---|---|
| Organization | I am not organized |
| Message-ID | <aorYW8m4khWzZmXM@end> |
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