MLReadyParallel (C 関数)
MLReadyParallelはWSReadyParallelに置き換えられた.
詳細
- MLReadyParallel()は,読み取るデータを持つリンクのリンクオブジェクトリストに,インデックスを返す. リストは,0から(n-1)までインデックスを付ける.
- MLReadyParallel()は,タイムアウト時間が終っても読み取るデータを持つリンクがない場合,MLREADYPARALLELTIMEDOUT を返す.
- MLReadyParallel()はエラーがあると,MLREADYPARALLELERRORを返す.
- リンクの準備ができるまで無期限に待つ場合には,waittime をMLINFINITEWAITに設定するとよい.
- MLReadyParallel()を非常に細かい待機メカニズムとして使うことはできない.
- MLReadyParallel()は,カーネル関数LinkReadyQ[{},waittime]に似ている.
- MLReadyParallel()は,MathLinkヘッダファイルmathlink.hの中で宣言される.
例題
例 (1)
#include "mathlink.h"
/* read data from either of two links */
void f(MLENV env, MLINK lp1, MLINK lp2)
{
mltimeval timeout;
MLINK links[2];
int result;
timeout.tv_sec = 5;
timeout.tv_usec = 0;
links[0] = lp1;
links[1] = lp2;
result = MLReadyParallel(env, (MLINK *)links, 2, timeout);
if(result == MLREADYPARALLELERROR)
{ /* unable to check links for data */ }
else if(result != MLREADYPARALLELTIMEDOUT)
{
/* read the link that has data ready */
if(result == 0)
/* read lp1 */
else
/* read lp2 */
}
}