On a previous pull request, Daniel had requested we use #ifdef __APPLE__ instead of #if HAVE_MACH. Not sure if that also applies to this pull request too or if HAVE_MACH is ok to use in these files.
I think this explanation is worth sharing and not leaving on an hidden review.
The pull request in question uses #if HAVE_MACH in .c files and internal headers where it’s possible to use HAVE_MACH because they see config.h and internal.h
It’s not ok to use this in public (or private headers, which is an OS X concept where we ship private APIs for sharing with other subsystems such as Foundation but aren’t generally useful or exposed as robust API: these entry points may change behavior or even not exist at all anymore from one release to the next) as we don’t ship config.h for relatively obvious reasons so HAVE_MACH is *not* defined there.
Technically, until someone ports libdispatch to GNU/Hurd,it’s okay to use #if __APPLE__ to hide anything mach related.
I hope I make sense.