可搬用関数:指定した時間が経過した後,サブルーチンの実行を開始させます。
モジュール:USE DFPORT
形式
result = ALARM (time, proc)
time
(入力) 整数型。ALARM の呼び出しと proc の実行の開始時の間の時間遅延を秒で指定します。time が 0 であれば,アラームがオフになりルーチンは呼び出されません。
proc
(入力) 引数なしで呼び出される手続名。手続は引数を取らず,EXTERNAL で宣言されなければなりません。
結果
結果の型は INTEGER(4) です。中断されているアラームがなければ,0 が返されます。アラーム (以前の ALARM 呼び出しで既に設定されている) が中断されている場合,以前に設定されたアラームがオフになるまでの残り秒数が近傍の秒になるように丸められて返されます。
ALARM が呼び出され,タイマーが開始された後,呼び出し側のプログラムが time 秒間継続されます。その後,呼び出し側のプログラムが中断し,他のスレッドで実行する proc が呼び出されます。proc が終了すると,アラーム・スレッドが終了し,元のスレッドが再開され,呼び出し側のプログラムがアラームをリセットします。一度,アラームがオフになると,再び設定されるまで無効になっています。
proc が I/O を実行したり,Fortran ライブラリーを使用する場合,マルチスレッド・ライブラリーとリンクする必要があります。マルチスレッドに関しての詳細は,「マルチスレッド・アプリケーションの作成」を参照してください。
proc が実行されるスレッドは,プロセスの他のどのスレッドよりも高い優先度を持っています。他のすべてのスレッドは,proc が終了するまで中断されるか,I/O のような他のイベントでブロックされます。
主プログラムが終了した後で,アラームを発生することはできません。主プログラムが終了した場合,またはスレッドが EXIT 呼び出しを実行した場合,すべての中断中のアラームが実行される前に不活性状態になります。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
例
USE DFPORT INTEGER(4) numsec, istat EXTERNAL subprog numsec = 4 write *, "subprog will begin in ", numsec, " seconds" ISTAT = ALARM (numsec, subprog)