0

でアナライザーをコーディングしましたOCaml。アナライザーはファイルを引数として取り、評価を返します: 、、GOOD...BAD一連makefileのファイルに対して 1 つずつアナライザーを起動する必要があります。

一部の巨大なファイルの場合、分析に非常に長い時間がかかります。そこで、分析用のタイマーを設定したいと思います。分析時間が 3 秒を超えた場合、現在のファイルの分析は停止TOO LONGされて返され、次のファイルに進みます...

このタイマーを追加する場所を誰か教えてもらえますか? OCaml内または内の関数の周りmakefile?そして、それを行う方法は?

編集:の一部makefile

allev:  all
        @n=0; \
        for f in \
        `find . -ipath '*/fetch/evs/*.ev' -exec grep -L -e "' Error" {} \;`; \
        do \
            let "n+=1"; \
            echo "oooooooooooooooooooooooooooooooooooooooo" $$n; \
            echo $$f; \
            ./$(BIN) $$f & \
            PID=$$!; \
            (sleep 0.001; kill $$PID) & \
            wait $$PID; \
            echo $$?; \
        done

実際0.001、ほとんどの分析には秒が短すぎるので、

  1. 1秒では終わら143ない分析に0.001
  2. /bin/bash: line 10: 60202 Terminated ./analyze $f、 秒で解析が終わらないときにこのようなメッセージが出力されるのではない0.001でしょうか?
  3. /bin/bash: line 9: kill: (60241) - No such process、このようなメッセージは、解析が0.0011 秒で終了するときに出力されるのでしょうか。

文字通り、メッセージは何が起こるかに関してまだ奇妙に見えます...

編集2:

約 4000 個のファイルに対して3秒単位のタイマーでアナライザーを実行しているため、ほとんどの分析は3数秒で完了します。みたいなメッセージをたくさんくれました/bin/bash: line 9: kill: (60241) - No such process

奇妙なのは、すべてのファイルを分析した後、端末のカーソルが新しいコマンド ラインを開始しないことです。を押すCtrl+Cと、すぐに新しいコマンド ラインが開始されます。誰かが理由を知っていますか?

4

1 に答える 1