How does joining a thread actually work?
As part of my research I’ve been playing around with something similar to
dynamic linking. In particular, part of my work has led me to having programs
that may need multiple copies of libc in the same address space (yes, it’s not
safe, I know). I noticed that this would sometimes cause multithreaded programs
to hang while calling pthread_join. Join (pun intended) me to understand a bit
about how threads work and what was happening under the hood.
