I found I can not get the following race fixed: Thread A is a joiner of thread B, thread C calls pthread_cancel on A, because of multipile scheduler locks, I can not get the race fixed. Is it possible we just use a single scheduler lock to simplify things a bit? David