I have updated the patch again, this time I added more determinable cancellation behavior. http://people.freebsd.org/~davidxu/patch/thread_cancel2.patch