dispatch_block cancellation point

My resource manager thread is blocked in dispatch_block(). To clean up I
call pthread_cancel() upon the resource manager thread, but it never seems
to die, though pthread_cancel() returns EOK. Is dispatch_block() a
cancellation point? Is there any other reason why the thread wouldn’t die?
Can I safely set the thread to PTHREAD_CANCEL_ASYNCHONOUS if
PTHREAD_CANCEL_DEFERRED can’t be made to work?

Thanks,
Shaun

Time to answer my own question. dispatch_block() is a cancellation point. It
works just fine. Just don’t forget to call pthread_join() after
pthread_cancel() otherwise the thread gets stuck in the DEAD state.

Cheers,
Shaun

My resource manager thread is blocked in dispatch_block(). To clean up I
call pthread_cancel() upon the resource manager thread, but it never seems
to die, though pthread_cancel() returns EOK. Is dispatch_block() a
cancellation point? Is there any other reason why the thread wouldn’t die?
Can I safely set the thread to PTHREAD_CANCEL_ASYNCHONOUS if
PTHREAD_CANCEL_DEFERRED can’t be made to work?