handle pending cancellation when enabling async cancellation
authorRich Felker <dalias@aerifal.cx>
Mon, 5 Sep 2011 01:37:07 +0000 (21:37 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 5 Sep 2011 01:37:07 +0000 (21:37 -0400)
commita7778dae226fbae335383bc92b6cdfccc5ea9f2e
tree3a290f99c9f397901a3011d04ba8e87907568e44
parent22e4542348352235614b57948025bdd0cc30dc32
handle pending cancellation when enabling async cancellation

this is not strictly required by the standard, but without it, there
is a race condition where cancellation arriving just before async
cancellation is enabled might not be acted upon. it is impossible for
a conforming application to work around this race condition since
calling pthread_testcancel after setting async cancellation mode is
not allowed (pthread_testcancel is not specified to be
async-cancel-safe). thus the implementation should be responsible for
eliminating the race, from a quality-of-implementation standpoint.
src/thread/pthread_setcanceltype.c