summaryrefslogtreecommitdiff
path: root/src/thread/pthread_setcancelstate.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/thread/pthread_setcancelstate.c')
-rw-r--r--src/thread/pthread_setcancelstate.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/thread/pthread_setcancelstate.c b/src/thread/pthread_setcancelstate.c
index ba2b2311..060bcdcc 100644
--- a/src/thread/pthread_setcancelstate.c
+++ b/src/thread/pthread_setcancelstate.c
@@ -3,13 +3,9 @@
int pthread_setcancelstate(int new, int *old)
{
if (new > 1U) return EINVAL;
- if (libc.main_thread) {
- struct pthread *self = __pthread_self();
- if (old) *old = self->canceldisable;
- self->canceldisable = new;
- } else {
- if (old) *old = libc.canceldisable;
- libc.canceldisable = new;
- }
+ if (!libc.has_thread_pointer) return ENOSYS;
+ struct pthread *self = __pthread_self();
+ if (old) *old = self->canceldisable;
+ self->canceldisable = new;
return 0;
}