2012-05-28 21 views

答えて

13

このため、古典的なUnixの解決策はありませんファイルディスクリプタでselect()を使用することです:与えられた秒数の間

let minisleep (sec: float) = 
    ignore (Unix.select [] [] [] sec) 
+0

シグナルを忘れないでください。 – ygrek

+0

これを試してみると、Unix.Unix_error(11、 "select"、 "")で失敗しました。 –

+0

それは私のために働く、私はそれを試してみました。私はMac OS X 10.7です。 –

12

Thread.delay関数は、指定された秒数だけスレッドを一時停止しますが、floatを使用するため、スレッドを1秒未満で一時停止できます。

4

モジュールUnixから

val sleepf : float -> unit 

実行を停止。睡眠と同じですが、 分の秒がサポートされています。

+2

この関数は4.03.0で追加されたことに注意してください。以前のバージョンのOCamlでは、この特定の関数にアクセスすることはできません。 – hcarty