I am evaluating commands on a "slave kernel" which I control from a "master kernel" through MathLink in a manner similar to this:
The slave kernel is of a different (older) version than the master.
I want to evaluate
UsingFrontEnd[NotebookEvaluate[..., InsertResults -> True]]
on the slave, but it doesn't work: it simply hangs. If I run the same in a terminal, i.e. with a kernel not controlled through MathLink and $ParentLink not set, it works. UsingFrontEnd operations which do require a front end but do not require that front end to call back to the kernel also work.
I am not surprised that this doesn't work, I imagine the subsidiary front end gets into trouble when it tries to call back to its kernel, as the parent link of that kernel is taken. I don't understand the details.
But is there an easy solution to this? Or should I better give up?
Why do I want this? I want to process some documentation notebooks in a the oldest version of Mathematica that the package is compatible with. I am trying to automate all this and I have a function which can launch a subsidiary Mathematica process of the requested version and evaluate various things with it.