続・Boost.Coroutineについての補足

http://d.hatena.ne.jp/melpon/20091212/1260584012
発表者が既に書いてたので、未回答の箇所を補足。

pthreadでマルチスレッドな環境で使えるの?

pthreadが特定の実装を指す言葉でもないので、すべての実装で動くかは保障できないです。
Hamigaki.CoroutineならLinux/NetBSD/Solarisで動作しています。
(Mac OS X/Cygwin版はスレッドでエミュレートしているので除外)

Coruoutine みたいなものを使ってると、スレッドセーフなモジュールが問題を起こすこともありそうじゃない?

この手の話題は「スレッドセーフ」の定義なしでは答えようがないですが、
少なくともC++例外処理が正しく動作する程度には問題がないと言えます。
コルーチンはスタックアドレスが変わる以外、基本的にスレッドと同等(呼び出し元と呼び出し先が同等)なので、
通常のマルチスレッドプログラミングと違いはないはずです。
Cygwinのようにスタックアドレスに依存している環境には、そもそもHamigaki.Coroutine(たぶんBoostも)が対応できていません。

スタックのアドレスのランダム化とかの影響はないの?

この機能の詳細は知りませんが、
スレッドの実行中にスタック(の先頭)アドレスが変更されるわけではないと思うので、
(局所変数のアドレスが無効になるので)
起動時にスタックアドレスが変わるぐらいなら動作に影響ないと思います。
POSIX版実装で使われるswapcontext()が最新規格では既にobsolete扱いなので、
処理系によってはswapcontext()自体がダメかもしれません。