On Jun 25, 2019, at 5:39 PM, David Griffith via cctalk <cctalk@classiccmp.org> wrote: > > I recently tripped over the fact that MacOS does not support nameless POSIX > semaphores. When attempting to use them, I get a complaint that they're > deprecated. I can't fathom why Apple would do that. I found this post > explaining it, albeit not very well: > https://lists.apple.com/archives/darwin-kernel/2009/Apr/msg00010.html. It > seems that Apple yanked out support, but elsewhere > (https://intfiction.org/t/macos-frotz-users/41553/5) I'm told that Apple did > it because BSD 4.4 didn't implement them. I was fairly sure that it did. > Does anyone have a more satisfying answer?
What do you find incorrect or insufficient about Terry’s explanation in that email to the darwin-kernel list? I get that you would like POSIX unnamed semaphores but they aren’t required for conformance and there are specific issues (that Terry relates) that really would have made them difficult to implement in a way that’s both compatible with how they’re used in practice (e.g. casting to pointers and sticking them in shared memory region) and maintaining binary compatibility (a decade’s worth of shipping software at that point that expects sem_t to be a 32-bit type). -- Chris