[c++-pthreads] Re: What are the real issues?

Howard Hinnant hinnant at twcny.rr.com
Wed Jan 7 03:24:57 UTC 2004


On Jan 6, 2004, at 10:06 PM, Fergus Henderson wrote:

> The point of standardizing a particular cancellation framework
> is to enable interoperability between code written by different 
> parties.
> For example, this is needed to allow application code to cancel threads
> which happen to be running third-party library code, or even standard
> library code such as getchar() or system calls such as read().

Thanks, I appreciate the need for code written by different parties to 
work together in a thread/cancel environment.

In the scenario I've outlined, code written by different parties would 
work together in a thread/cancel environment as long as:

1.  The code met basic exception safety requirements.
2.  The code was not compute-bound (and thus ignored cancellation 
requests).

For example, I could've sprinkled my helloworld with std::lib calls, 
and it still would've been ok because the std::lib maintains basic 
exception safety.  Admittedly if a std::lib call took an inordinate 
amount of time, cancellation requests would be ignored during that 
call.  But it seems we already have the risk of ignoring cancellation 
requests anyway.

You correctly point out that YourLib would not recognize cancellation 
requests from MyLib.  However, YourLib could correctly clean up its 
resources in the event that it called MyLib which subsequently 
initiated cancellation.  Is that sufficient interoperability?

-Howard




More information about the c++-pthreads mailing list