Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: wording tweaks on async-cancel safety

...

This code instead uses the pthread_cancel() to terminate the thread. The thread continues to run until it reaches a cancellation point. See the second referenced article for a list of functions that are cancellation points. If the cancellation type is set to asynchronous, the thread is terminated immediately. However, POSIX only requires the pthread_cancel(), pthread_setcancelstate(), and pthread_setcanceltype() functions to be asynchronous async-cancel safe. An implementation application that calls other POSIX functions with asynchronous cancellation enabled is non-conforming.

Code Block
bgColor#ccccff
int main(void){
  pthread_t thread;

  pthread_create(&thread, NULL, func, (void*)0);
  pthread_cancel(thread);

  /* Continues */

  return 0;
}

void func(void *foo){
  /* Execution of thread */
}

...