でアナライザーをコーディングしました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秒では終わら
143
ない分析に0.001
。 /bin/bash: line 10: 60202 Terminated ./analyze $f
、 秒で解析が終わらないときにこのようなメッセージが出力されるのではない0.001
でしょうか?/bin/bash: line 9: kill: (60241) - No such process
、このようなメッセージは、解析が0.001
1 秒で終了するときに出力されるのでしょうか。
文字通り、メッセージは何が起こるかに関してまだ奇妙に見えます...
編集2:
約 4000 個のファイルに対して3
秒単位のタイマーでアナライザーを実行しているため、ほとんどの分析は3
数秒で完了します。みたいなメッセージをたくさんくれました/bin/bash: line 9: kill: (60241) - No such process
。
奇妙なのは、すべてのファイルを分析した後、端末のカーソルが新しいコマンド ラインを開始しないことです。を押すCtrl+C
と、すぐに新しいコマンド ラインが開始されます。誰かが理由を知っていますか?