THR_CANCEL_AT_POINT
*oldtype = ((oldval & THR_CANCEL_AT_POINT) ?
atomic_set_int(&curthread->cancelflags, THR_CANCEL_AT_POINT);
atomic_clear_int(&curthread->cancelflags, THR_CANCEL_AT_POINT);
if (!(oldval & THR_CANCEL_AT_POINT)) {
atomic_set_int(&curthread->cancelflags, THR_CANCEL_AT_POINT);
if (!(previous & THR_CANCEL_AT_POINT))
atomic_clear_int(&curthread->cancelflags, THR_CANCEL_AT_POINT);
THR_CANCEL_NEEDED | THR_CANCEL_AT_POINT)) == \
(THR_CANCEL_NEEDED | THR_CANCEL_AT_POINT))
if (curthread->cancelflags & THR_CANCEL_AT_POINT)