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 | <aosP8VAnPho_hbYb@end> |
Samuel Thibault, le dim. 23 août 2026 13:24:11 +0200, a ecrit: > 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. Ah, it's actually glibc's __mach_msg in mach/msg.c which does the loop, ok. Samuel