The following is from the comparison between WSTP (MathLink) and LibraryLink in the documentation:
When the Wolfram Language is waiting for a WSTP application to return a result, it can be used to service preemptive computations such as those needed for user interface operations. When a library function is running this will not happen without effort by the author of the library.
(Emphasis by me.)
What do I need to do to allow for preemptive computations to be serviced while running LibraryLink functions?
Is there a function similar to
libData->AbortQ() that I need to call from time to time?
AbortQ() itself won't allow for this (I already checked). I did not find anything promising in
WolframLibrary.h, but the documentation suggests that there should be a way.
The following works, but I am not sure of its performance impact and I worry that this is just an abuse of functionality meant for something else.
Periodically execute the following in the LibraryLink function (the same way you would call
MLINK lp = libData->getMathLink(libData); libData->processMathLink(lp);
Is this the right way to do it?