On Nov 19, 2020, at 2:43 PM, H William Welliver <william@welliver.org> wrote:

I’m running builds of 8.0 to make sure we don’t have any major test failures, and I’ve run into a few problems so far. I’ll put them in separate emails so they are more manageable. If anyone can offer any assistance, that would be most appreciated. I can supply any info needed, up to getting you a logon to the systems in question.

First up, macOS 10.12+ hang on socktest.pike. The 10.11 and earlier do not have this problem, and I haven’t tried running an older binary on a newer OS. The call to gc() in finish() never returns, and according to LLDB:


So, a little more experimentation and it appears that my hunch was correct: mach ports are invalid in the child process, and a call to init_mach_clock()following the fork() seems to restore order. What’s the best approach to make that happen? I see that atfork_child_callback get called in the child process after fork… is that the approved approach?

Bill