5

シェル プロセスにメッセージを送信するときは、次のように呼び出してすべてのメッセージをフラッシュできます。c:flush().

C:\Windows\System32>erl
Eshell V5.9 (^G で中止)
1> セルフ() ! ジョシュ。
ジョシュ
2> セルフ() ! 自分。
自分
3> セルフ() ! あなた。
あなた
4>フラッシュ()。
シェルはジョシュを手に入れました
シェルは私を手に入れました
シェルはあなたを手に入れました
わかった
5>

私の考えでは、これはシェルプロセスのメールボックスを空にします。erlang プロセスのメールボックスを空にする同等の方法は何ですか?

4

1 に答える 1

9

この関数は、メールボックスからすべてのメッセージをフラッシュする必要があります (呼び出した任意のプロセスで):

flush() ->
        receive
                _ -> flush()
        after
                0 -> ok
        end.
于 2012-08-16T14:54:55.710 に答える