I have do some test on you linuxator,and I lookup you code .it seems that there is still something wrong with the linux signal emul .
I have two question about the signal.
1\ when we want to kill a signal to a linux process(linux_kill),signal like SIGKILL or SIGSTOP should be linux process wide. that is mean we should depend on the “em “struct in a proc to find all the linux thread in the proc ‚and kill them. but in your linuxtor,I find nothing to do with it.
2\ in nptl implemetation, pthread_cancel will send SIGCANCEL(number is 32) to a thread. but there is nothing to do with it .so pthread_cancel is still not done with it.
I wish I can get answer