[PATCH 08/11] Cygwin: testsuite: Busy-wait in cancel3 and cancel5
Corinna Vinschen
corinna-cygwin@cygwin.com
Thu Jul 13 18:16:47 GMT 2023
On Jul 13 12:39, Jon Turney wrote:
> These tests async thread cancellation of a thread that doesn't have any
> cancellation points.
>
> Unfortunately, since 450f557f the async cancellation silently fails when
> the thread is inside the kernel function Sleep(), so it just exits
I'm not sure how this patch should be the actual culprit. It only
handles thread priorities, not thread cancellation. Isn't this rather
2b165a453ea7b or some such?
> normally after 10 seconds. (See the commentary in pthread::cancel() in
> thread.cc, where it checks if the target thread is inside the kernel,
> and silently converts the cancellation into a deferred one)
Nevertheless, I think this is ok to do. The description of pthread_cancel
contains this:
Asynchronous cancelability means that the thread can be canceled at
any time (usually immediately, but the system does not guarantee this).
And
The above steps happen asynchronously with respect to the
pthread_cancel() call; the return status of pthread_cancel() merely
informs the caller whether the cancellation request was successfully
queued.
So any assumption *when* the cancallation takes place is may be wrong.
Corinna
More information about the Cygwin-patches
mailing list