Closed GoogleCodeExporter closed 8 years ago
I also tried this with 2011b 64bit and had the same issue.
Just to be clear, the issue here is that a thread that does not need a return
value (i.e. is called with eval() ), should continue and not block in
JMIWrapper.invokeAndWait.
Or, eval should call some new "invokeAndDontWait" function which does not wait
for the return value since none is requested.
I'm still confused why this would be a problem since I have two different
MatlabProxys. I'm not sure if I stumbled on a bug or a feature.
Original comment by JacobGMa...@gmail.com
on 30 Jul 2012 at 1:12
What you have described is by design. When you call a method on the proxy the
Java thread you are calling on blocks until Matlab has completed execution. The
proxy itself is not blocked, you may call more methods on it from other Java
threads although this will not cause simultaneous execution as Matlab itself is
single threaded.
The reason the proxy blocks even when calling a function with a void return
type is so that it is possible to reliably take action on Matlab's state after
a given action - this is very problematic in cases where you are taking other
actions that effect Matlab such as modifying files that Matlab may be asked to
make use of.
Original comment by nonot...@gmail.com
on 18 Feb 2013 at 8:19
Original issue reported on code.google.com by
JacobGMa...@gmail.com
on 29 Jul 2012 at 8:23