CheckAbort внутри функций MathLink?

Я только что обнаружил, что такие MathLink функции как LinkWrite и LinkRead имеют что-то вроде своего внутреннего CheckAbort , который поглощает любые прерывания и не распространяет их дальше.

Это можно легко показать с помощью LinkRead :

link = LinkLaunch[First[$CommandLine] <> " -mathlink"];
LinkRead[link];
LinkWrite[link, Unevaluated[Pause[10]]];
{LinkRead[link], Print["!!"]}

После оценки вышеуказанного кода нажмите Alt + ]. , и вы получите следующий результат:

During evaluation of In[6]:= !!
Out[9]= {ReturnPacket[$Aborted], Null}

Как видите, прерывание было поглощено LinkRead .

Моя проблема в том, что он нарушает мой собственный контроль потока оценки на основе CheckAbort .

Есть ли способ перехватить прерывания, поглощаемые такими функциями, как LinkRead и ] LinkWrite ?

12
задан Trikaldarshi 16 December 2013 в 16:49
поделиться