microblaze port
[musl] / src / thread / pthread_setcanceltype.c
index c73db22..ce2fff0 100644 (file)
@@ -3,8 +3,9 @@
 int pthread_setcanceltype(int new, int *old)
 {
        struct pthread *self = pthread_self();
+       if (new > 1U) return EINVAL;
        if (old) *old = self->cancelasync;
-       if ((unsigned)new > 1) return EINVAL;
        self->cancelasync = new;
+       if (new) pthread_testcancel();
        return 0;
 }