[cfe-dev] libclang cancellation of long running tasks

John Sully john at csquare.ca
Mon Jan 12 17:33:57 PST 2015


Yes it already runs on a separate thread; however when its known the result
is no longer necessary (for example the user changed the cursor location -
negating the need for autocomplete at the previous location) the separate
thread still runs consuming resources.

On slower devices like laptops these operations can take a long time.  Even
if we are willing to accept the waste of cycles (and battery life!), the
processor has a limited number of cores and responsiveness will be poor if
too many "zombie" jobs are still running.

I'm willing to add this functionality and submit it upstream if necessary,
but prior to doing so I wanted to reach out to current developers.  It
would be unfortunate to invest significant effort only to find my patch
can't be accepted for an avoidable reason.


On Mon, Jan 12, 2015 at 4:09 PM, Sean Silva <chisophugis at gmail.com> wrote:

> Have you tried running libclang on a separate thread?
>
> On Sun, Jan 11, 2015 at 7:59 PM, John Sully <john at csquare.ca> wrote:
>
>> I'm in the process of writing an editor based upon libclang, and a major
>> issue I'm hitting is the inability to cancel long running tasks.  The
>> primary tasks are parsing and creation of auto-complete results.
>>
>> Is there already functionality to do this that I've missed?
>>
>> If not, I would like to implement this as its a requirement to get good
>> responsiveness out of my editor.  Has there been any prior discussions on
>> how this should be implemented?
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150112/76763454/attachment.html>


More information about the cfe-dev mailing list