I'm trying to use engPutVariable and engGetVariable to transfer blocks of data between C and a Matlab engine.
Two related questions.
First if I create an engine pointer and then a mxArray in C and use mxGetPr or GetVariable for say a real DP array, and the pull function returns, is this blocking or non-blocking? Is this supposed to mean that the source Matlab base workspace variable or array is now in a complete, valid copy in C memory?
Second, how does this still work if I just open the engine but do not actually use say engExecuteString(), but still use mxPut-style calls to push data from C to Matlab? I'm wondering just how long after the mxPut returns in C, do I have to wait before I can rely on the data-transfer being complete in Matlab. Is there some relation between time and the size in Bytes of the transfer?
thanks