Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Pthreads provides an API for managing thread cancellation. The pthread setcancel

ID: 641817 • Letter: P

Question

Pthreads provides an API for managing thread cancellation. The pthread setcancelstate() function is used to set the cancellation state. Its prototype appears as follows:

pthread setcancelstate(int state, int *oldstate)

The two possible values for the state are PTHREAD CANCEL ENABLE and PTHREAD CANCEL DISABLE.

Using the code segment shown in Figure 3.27, provide examples of two operations that would be suitable to perform between the calls to disable and enable thread cancellation

Figure 3.27 below

int oldstate;

pthread setcancelstate(PTHREAD CANCEL DISABLE, &oldstate);

/* What operations would be performed here? */

pthread setcancelstate(PTHREAD CANCEL ENABLE, &oldstate);

Explanation / Answer

#include <unistd.h>
#include <errno.h>

#include <pthread.h>
#include "thread_internal.h"

int pthread_setcancelstate(int state,int*oldstate) {
if ((state==PTHREAD_CANCEL_ENABLE)||(state==PTHREAD_CANCEL_DISABLE)) {
    _pthread_descr this=__thread_self();
    if (oldstate) *oldstate=this->cancelstate;
    this->cancelstate=state;
    return 0;
}
return EINVAL;
}

thread_internal.h

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote