Humanity

Edit the world by your favorite way

quickrunで即座に終了しないプログラムを動かしてもフリーズしない方法

前回の記事で気になったので。
次の設定を.vimrcに書けばそういうの動かしても大丈夫。

let g:quickrun_config = {'runmode': 'async:vimproc'}

嘘言った。
これでもフリーズしてVimがSEGVした。
1回目はOKだったけど2回目やったらダメで、
Vim再起動してまたやったら1回目からSEGVした。
2回目以内にかならず再現するかはわからない。
vimprocのなんかの限界に達したっぽい感じ(適当すぎる...

きっかけ

そういえばvimproc使えば無限ループ的なプログラムも大丈夫なんだっけ?
と思って:help quickrunして/vimprocとかで探したらこんなん書かれてた。

50 ミリ秒以内に実行が終了 した場合は、即座
に結果を表示します。

50ミリ以内に終了しなかった場合はどうなんだろう。
というか「即座に結果を表示」の意味がどういうことなのかよくわからない。
50ミリ以内なら確かに即座なんじゃないんだろうか...?と思ってしまった。


あとasync:vimprocとasync:remote:vimprocの違いが知りたい。
async:remote:vimprocは+clientserverが必要なようですが、
2つ作った理由がわからない。

まとめ

そんな感じでぐだぐだ言ったので、
id:thincaさんへの質問をまとめるとこんな感じです。暇な時に返事ください。

  • 「50ミリ秒以内に〜」の記述の意図がわからない
  • :help quickrun-option-runmode のasync:vimprocとasync:remote:vimprocの違いが知りたい