Louis Brandy added the comment:
Thanks to everyone jumping in.
I need no convincing that mixing forks and threads isn't just a problem but a
problem factory. Given that the rest of this code seems to try to avoid similar
deadlocks with similar mutexes, I figured we'd want to in
New submission from Louis Brandy:
A forked process (via os.fork) can inherit a locked `head_mutex` from its
parent process and will promptly deadlock in this stack (on my linux box):
Child Process (deadlocked):
#0 0x7f1a4da82e3c in futex_abstimed_wait_cancelable (private=0,
abstime=0x0