<div dir="ltr"><div><div>Thanks for the help everyone.  I'll check back in a few days when I've had a chance to prototype it.<br><br></div>One other question, does anybody know the rationale for libclang spawning new threads to do the work on?  I plan to change this at least for my own builds, but if its something that could be changed upstream that would be much better.  <br></div>Spawning a separate thread causes it to ignore the thread priority of the thread making the original call.  It also has non-trivial overhead.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 13, 2015 at 6:16 AM, Jonathan Roelofs <span dir="ltr"><<a href="mailto:jonathan@codesourcery.com" target="_blank">jonathan@codesourcery.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 1/12/15 7:34 PM, John Sully wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Jonathan,<br>
<br>
I don't understand how std::future::wait_for would allow me to cancel a<br>
running libclang operation.<br>
<br>
I'm not asking how to do this asynchronously - I already have that<br>
working.  I need a way to stop performing work when the results become<br>
obsolete. I could always shutdown the thread its on but that would leave<br>
things in an undefined state.<br>
</blockquote>
<br></span>
Sorry, for some reason I thought std::future had a way to kill the task. The idea was to loop on the future's wait_for, giving it some small interval, then to kill the future if the result is no longer needed.<br>
<br>
Jon<div class="HOEnZb"><div class="h5"><br>
<br>
--<br>
Jon Roelofs<br>
<a href="mailto:jonathan@codesourcery.com" target="_blank">jonathan@codesourcery.com</a><br>
CodeSourcery / Mentor Embedded<br>
</div></div></blockquote></div><br></div>