« マルチスレッド貧乏性(6) | Main | Emacs Threads 20161217 »

December 15, 2016

Emacs Threads 20161215

2016129日にテストアナウンスされ、たった1日でmasterにマージされた、Emacsのスレッド機能についていくつかツイートしていた。今はまだ開發中、テスト中の機能であり、モンキーテストまがいのことをすればいくらでも問題が出てくると思われるが、そんな面白半分なツイートを繰り返していると、その尻馬に乘って同じようなことをしてしまう人が出てきたり、惡意のアンチ達にエサを與えたりするようなものなので、全く注目されていない自分のブログの方で好き勝手なことを書いていこうと思った。

私個人のマルチスレッドに對する考え方は、奇しくも同時竝行で書いていた「マルチスレッド貧乏性」の記事のとおりだ。

3日經った段階で、既に最初の悲慘な狀態からはかなり改善されてきているように見える。とりあえずしばらくはNo WindowEmacsで思いつくサンプルを實行して樣子を見ていくつもりだ。再現性が高い問題もいくつか出るだろうが、GNUへのバグ報告をするつもりはない。というか、私のようなノロマが調べて報告しようとしても、とっくに解決濟み既知問題になっている。

Ws000066


このサンプルを書いて動かしているうちに氣付いたことがある。起動したスレッドの中でcall-processshell-commandを使った同期プロセスを起動すると、そのプロセスの實行中はEmacsの操作がブロックされる。これはスレッドを起動していない狀態でも、それ自體ひとつのスレッドの中であることに變わりはないのだから、その際の動作と同じということになる。all-threadsという關數を實行すると實行中のスレッドが常時1個あると分かる。このことから、起動した複數のスレッドからそれぞれ同期プロセスを起動しても、期待するような竝行性は得られない。

スレッドを複數起動してそれぞれのスレッドから非同期プロセスを起動すれば、今囘載せたサンプルのように期待する動きになるが、これはスレッドを起動しなくても全く同じ擧動になる。なので、スレッドを使った竝行性についてはバッファ上のテキスト編集でどう動くかに興味がわいてくる。

|

« マルチスレッド貧乏性(6) | Main | Emacs Threads 20161217 »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/74224/64626470

Listed below are links to weblogs that reference Emacs Threads 20161215:

« マルチスレッド貧乏性(6) | Main | Emacs Threads 20161217 »