summaryrefslogtreecommitdiff
path: root/src/thread/pthread_setcanceltype.c
blob: bf0a3f383dd34943c6eb502f50043b4dddcff537 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
#include "pthread_impl.h"

int pthread_setcanceltype(int new, int *old)
{
	struct pthread *self = __pthread_self();
	if (new > 1U) return EINVAL;
	if (old) *old = self->cancelasync;
	self->cancelasync = new;
	if (new) pthread_testcancel();
	return 0;
}