Boost.Context with Thread Migration in GCC
Boost.Context の jump_fcontext 前後でスレッドがすり替わっていたとしても安全に挙動するように GCC の最適化を制限したい話.
Akso de la Malbono
@Cryolite
どうせ1イベントに1スレッドのブロッキングモデルやっててリソースが足りなくなるとかイマドキめったにないだろうからわざわざ制御が逆転した複雑なプログラミングモデル使わなくていーんじゃね(ホジ
2013-02-08 23:46:34
やまさ
@yamasa
見てる: Boost.Context with Thread Migration in GCC - Togetter http://t.co/379lAEHv
2013-02-09 01:08:33
やまさ
@yamasa
一昨日の http://t.co/379lAEHv について考えてたんだけど、やっぱり異なるthread間でcontextを切り替えるのには本質的な問題点があるなあ。
2013-02-11 02:04:17
やまさ
@yamasa
たとえば http://t.co/mpjb13xr のコードだと、関数fのcontextの中でいきなりthread IDとかthread_local変数の値が変わること自体がおかしいと思う。
2013-02-11 02:08:02
やまさ
@yamasa
thread_local変数って、本来stack上に置きたいところだけどscopeの関係でそこには置けない、って感じのものに使われるから、stackが同じならthread_localも同じものを参照しなきゃならんでしょ。
2013-02-11 02:12:08
やまさ
@yamasa
ちゃんとやるなら、makecontextではthread IDもthread local変数も新しいものを与え、swapcontextではそれらも一緒に切り替える、って感じになるだろうけど、これは結局user-space threadsの実装そのものだよね。
2013-02-11 02:22:05