It's actually not clear to me what lock it is from the core file I took, as rlock_acquire() is called through a function pointer from method_vectorcall_VARARGS_KEYWORDS() (I posted the backtrace separately).
My suspicion is that it doesn't fail on macOS because it may keep all of the semaphore's state in the kernel, which means that it is not necessarily inherited on fork(). QNX keeps the count in user mode, in a similar fashion to the way some state is kept in user mode for fast mutexes. I'll see if I can come up with a simple scenario. In the mean time I am trying to switch to posix_spawn() to see if it fixes the problem (and will also be much faster on QNX, as you don't need to create a duplicate address space just to tear it down with exec()). --Elad _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/XHHRNVTWADJTMHODQUVRH5QF3TLTIT4N/ Code of Conduct: http://python.org/psf/codeofconduct/