MLReadyParallel()

int MLReadyParallel(MLENV env, MLINK *links, int n, mltimeval waittime)
長さn のリンクオブジェクトのリストを取り,そのリンクの一つに読取り可能なデータがあるようになるのをwaittime で指定されたタイムアウト時間待つ.

詳細詳細

  • MLReadyParallel()は,読み取るデータを持つリンクのリンクオブジェクトリストに,インデックスを返す. リストは,からまでインデックスを付ける.
  • MLReadyParallel()は,タイムアウト時間が終っても読み取るデータを持つリンクがない場合,MLREADYPARALLELTIMEDOUT を返す.
  • MLReadyParallel()はエラーがあると,MLREADYPARALLELERRORを返す.
  • リンクの準備ができるまで無期限に待つ場合には,waittimeMLINFINITEWAITに設定するとよい.
  • MLReadyParallel()を非常に細かい待機メカニズムとして使うことはできない.
  • MLReadyParallel()は,カーネル関数LinkReadyQ[{}, waittime]に似ている.
  • MLReadyParallel()MathLink ヘッダファイルmathlink.hの中で宣言される.

例題例題すべて開くすべて閉じる

例 (1)例 (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 */
        }
}
New to Mathematica? Find your learning path »
Have a question? Ask support »