- if (!self->cancel) {
- if (si->si_code == SI_TIMER && libc.sigtimer)
- libc.sigtimer(sig, si, ctx);
- return;
- }
- if (self->canceldisable) return;
- if (self->cancelasync || (self->cancelpoint==1 && PC_AT_SYS(ctx)))
+ if (si->si_code == SI_TIMER) __sigtimer_handler(self);
+ if (self->cancel && !self->canceldisable &&
+ (self->cancelasync || (self->cancelpoint==1 && PC_AT_SYS(ctx))))