System 0x32


指定時間ウエイト


【機能】

 動作中のユーザプログラムを指定された時間だけウエイトします。

【関数】

 int TimeWait( int tim )
 {
   return trapa_svc( 0x32, pid, tim );
 }

【入力】

 tim 時間 ウェイトする時間(ms)

【出力】

 リターンコード OK 正常終了
ERR_PARAM パラメータエラー

【解説】

 呼び出し元のメッセージキューに未処理のメッセージがない場合、動作中のユーザプログラムを一時停止し、他のプログラムに制御を切り替えます。指定された時間が経過するか、他のプロセスからメッセージを送られたときに、本ファンクションから復帰します。
 メッセージキューに未処理のメッセージが存在する場合には、そのまま復帰します。

 ウェイトする時間はミリ秒単位で指定します。負の値を指定した場合、パラメータエラーを返します。

【関連項目】

 メッセージ取得

【使用例】

 以下に典型的な使用方法を示します。
 while(1) { /* メインループ */
   if(TimeWait(1000) > 0) {
     GetMsg(&msg);
     switch(msg.cmd) {
       case MSG_SYSMSG:
         /* LAN側のプロセスはソケットのチェックを行なう  */
         /* シリアル側のプロセスは受信処理を行なう      */
         /* 外部インタフェースを持たないプロセスは何もしない */
         break;
       case ..... /* その他必要なメッセージ処理        */
          :
          :
     }
   }else{
     /* タイムアウトした場合の処理  */
   }
 }