Thread (39 messages) flat view 39 messages, 3 authors, 2016-06-15

Re: [PATCH 5/4] run-command: implement abort_async for pthreads

From: Erik Faye-Lund <hidden>
Date: 2016-06-15 22:50:57

On Fri, Apr 1, 2011 at 10:18 PM, Johannes Sixt [off-list ref] wrote:
On Freitag, 1. April 2011, Erik Faye-Lund wrote:
quoted
On Fri, Apr 1, 2011 at 9:42 PM, Johannes Sixt [off-list ref] wrote:
quoted
But this does not help the case at hand in any way. How would you
interrupt a thread that is blocked in ReadFile()? The point of
pthread_cancel() is that it interrupts blocked system calls
There is no mention of such a guarantee in POSIX (section 2.9.5 Thread
Cancellation), so relying on that is undefined behavior.
In the paragraph before the bulleted list at the end of "Cancellation Points":

"...If a thread has cancelability enabled and a cancellation request is made
with the thread as a target while the thread is suspended at a cancellation
point, the thread shall be awakened and the cancellation request shall be
acted upon..."
A blocking thread and a suspended are two different matters. A
suspended thread is a thread that has been explicitly suspended by
wait, waitpid, sleep, pause etc. These functions explicitly say that
they suspend the thread ("shall suspend the calling thread until"),
while read etc does not ("shall block the calling thread until").

Similarly, making a blocking read/write fail (or terminate mid-way) is
not the same thing as awakening the thread.

I see how some people can read something like this into this section,
but I think it's pretty clear - this is not what it's talking about.
In fact, the more I read the relevant texts, the more convinced I get
that implementations that does terminate read/write strictly speaking
is in violation of the standard.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help