3

comint erlang-shell を使用してバックグラウンド バッファを開こうとしています。起動したら、emacs で関数呼び出しを実行します (distel を使用してバイナリを erlang ノードに送信します)。

すなわち:

...
(let ((args (append (list "-sname" node-name "-pa") path)))
    (get-buffer-create buffer-name)
    (apply #'make-comint-in-buffer node-name buffer-name "erl" nil args)
  (erl-check-backend (make-node-name node-name))
...

問題は、distel を呼び出すと、ノードがまだ起動していない (epmd に登録された名前がない) ため、失敗することです。これは、下位プロセスがまだ実行されていないためだと思います。comint-buffer のセットアップが完了するまで待つ方法はありますか?

上記の関数の引数として送信されたバッファの buffer-process で accept-process-output を試しましたが、ハングしました。

どんな助けでも感謝します:)

トーマス

4

2 に答える 2

1

Dave Loveによって作成されたpython.elでは、次のものが使用されました。

(while (progn
     (accept-process-output proc 5)
     (null python-preoutput-result)))
于 2012-08-20T06:05:17.280 に答える