- There is way too much of busy waiting for fairly arbitrarily chosen timeout periods in the code. - Recursive mutexes are evil. In general, I think the consensus is that recursive mutexes should be avoided. One should use them only when absolutely necessary because the code-base is so complex that one has no idea how it works. That was hopefully not the case when recursive mutexes were introduced here? But probably it is by now... - Occasionally Control-C (SIGINT) doesn't shut fown loolwsd. One has to kill it with SIGKILL. Which of course leaves all the chroot jails around. - ASCII art? Seriously?